Skocz do zawartości

Web Hosting Talk

  • progreso.pl

    Partner technologiczny

    Upraszczamy to, co inni starają się komplikować. Prosto, pewnie, przyjaźnie - tak robimy hosting!
  • Kei.pl

    Partner technologiczny

    Kei.pl działa na polskim rynku internetowym od 2000 roku. Obecnie na blisko 300 serwerach w Centrum Danych Kei.pl znajduje się kilkadziesiąt tysięcy stron WWW.
  • S-NET.info

    Partner technologiczny

    S-NET to dostawca usług dla biznesu. Najważniejsze usługi świadczone przez firmę to usługi Centrum Danych, dostęp do Internetu, transmisja danych oraz tranzyt do różnych operatorów.
  • Sprint Data Center

    Partner technologiczny

    Sprint Data Center to jedyne w Polsce północno-wschodniej i jednocześnie jedno z najnowocześniejszych w kraju centrum przechowywania i przetwarzania danych.

 

Najoptymalniejszy my.cnf


19 odpowiedzi na ten temat

Najoptymalniejszy my.cnf

#1 fudi

    Czasami na forum

  • Użytkownicy
  • 34 postów
  • Skąd:Sosnowiec
  • Imię:Tomasz

Napisany 13 maj 2010 - 16:28

Witam.

Chciałem prosić bardziej obeznanych forumowiczów o pomoc w ustawieniu pliku my.cnf (zależy mi na maksymalnej wydajności).

Otóż zakupiłem serwer VPS o następujących parametrach:

  • 10 GB dysku twardego
  • 100 GB transferu miesięcznego
  • 256 MB - gwarantowany RAM
  • 512 MB - maksymalny RAM
  • Procesor - 1 Ghz
  • system operacyjny Linux: Debian Lenny 5.0
Poszukuję najoptymalniejszej konfiguracji pliku my.cnf w założeniu iż:

- do bazy połączonych jest max'ymalnie 100 userów ( w jednej chwili !)
- jeden user przesyła do bazy ~20 zapytań/minutę
- jeden user odbiera z bazy ~20 zapytań/minutę ( jest to odpowiedź bazy na zapytania podane wyżej)
- długość zapytania max 50 znaków

Załączam przykładowy plik my.cnf może pomoże w doborze konfiguracji.

Cytuj


[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 128K
thread_cache_size = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover = BACKUP
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
#
# * Query Cache Configuration
#
query_cache_limit = 1M
query_cache_size = 16M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
#log = /var/log/mysql/mysql.log
#
# Error logging goes to syslog. This is a Debian improvement ;)
#
# Here you can see queries with especially long duration
#log_slow_queries = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
# other settings you may need to change.
#server-id = 1
#log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
#
# * BerkeleyDB
#
# Using BerkeleyDB is now discouraged as its support will cease in 5.1.12.
skip-bdb
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
# You might want to disable InnoDB to shrink the mysqld process by circa 100MB.
#skip-innodb
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem



[mysqldump]
quick
quote-names
max_allowed_packet = 16M

[mysql]
#no-auto-rehash # faster start of mysql but no tab completition

[isamchk]
key_buffer = 16M

#
# * NDB Cluster
#
# See /usr/share/doc/mysql-server-*/README.Debian for more information.
#
# The following configuration is read by the NDB Data Nodes (ndbd processes)
# not from the NDB Management Nodes (ndb_mgmd processes).
#
# [MYSQL_CLUSTER]
# ndb-connectstring=127.0.0.1


#
# * IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/


Z góry serdecznie dziękuję za pomoc!

#2 tom3kk

    Często na forum

  • Użytkownicy
  • 72 postów
  • Skąd:Oświęcim

Napisany 13 maj 2010 - 16:45

ciezko z gory okreslic jaki config bedzie dobry, to wymaga testow/obserwacji, nie ma regul na to...

sugeruje Ci zostawic domyslny plik konfiguracyjny z Debiana
stary slackware'owiec

irc.freenode.net  @ #slackware.pl

#3 fudi

    Czasami na forum

  • Użytkownicy
  • 34 postów
  • Skąd:Sosnowiec
  • Imię:Tomasz

Napisany 13 maj 2010 - 17:10

Jestem skory do testów tylko podając parametry miałem nadzieje iż dostanę wytyczne co zmienić żeby wykorzystać zasoby w 100% ;)

-A może orientujesz się jak można na bierzącoc dodawać hosty z których można się podłączyć pod mysql?

"Ale dane hosty nie wszytkie ;) "

#4 tym

    Weteran WHT

  • WHT Pro
  • PipPipPipPipPipPipPipPip
  • 767 postów
  • Skąd:Poznań
  • Firma:DG

Napisany 13 maj 2010 - 18:33

Na początek podziel wszystko na 2 i odhaszuj skip-innodb (o ile nie jest ci potrzebne). Także pamiętaj by używać preforka zamiast workera (apache). No i lekki tuning tegoż deamona plus optymalizacja php.
Szukasz ciekawych ofert serwerów VPS? Sprawdź na www.kuptanioserwer.pl
Masz problem z serwerem? Szybka reakcja, najlepsze rozwiązania, dobre ceny, faktura VAT. Kontakt PW.

#5 fudi

    Czasami na forum

  • Użytkownicy
  • 34 postów
  • Skąd:Sosnowiec
  • Imię:Tomasz

Napisany 13 maj 2010 - 20:48

skip-innodb - ok odhaszuję nie używam tego typu baz!

Natomiast:

Zobacz posttym, o 13 maj 2010 - 18:33, powiedział:

Także pamiętaj by używać preforka zamiast workera (apache). No i lekki tuning tegoż deamona plus optymalizacja php.

Na tym serwerze jest zainstalowany TYLKO serwer mysql bez apache!

Podzielić przez dwa ok spróbuje!

Czekam na dalsze propozycje ;)

#6 fudi

    Czasami na forum

  • Użytkownicy
  • 34 postów
  • Skąd:Sosnowiec
  • Imię:Tomasz

Napisany 14 maj 2010 - 09:22

Przepraszam że piszę post pod postem ale nie mogłem go edytować :/

Za tą poradę:

skip-innodb

masz u mnie + zużycie mysql zpadło drastycznie dzięki tobie doczytałem że zwalania to 100MB pamięci.

Nadal nie mogę się wstrzelić z resztą wartości w my.cnf

Jest jakaś strona która opisuje dokładnie do czego służą, albo jak dobrać optymalne wartości ... nie ukrywam iż mam małe problemy z językiem angielskim ale maturę zdałem ;)

#7 hemi

    Nowy użytkownik

  • Użytkownicy
  • 21 postów

Napisany 14 maj 2010 - 09:30

Spróbuj uzyć skryptów mysqltuner.pl i tuning-primer

#8 tom3kk

    Często na forum

  • Użytkownicy
  • 72 postów
  • Skąd:Oświęcim

Napisany 14 maj 2010 - 09:30

oficjalna dokumentacja MySQL,
stary slackware'owiec

irc.freenode.net  @ #slackware.pl

#9 fudi

    Czasami na forum

  • Użytkownicy
  • 34 postów
  • Skąd:Sosnowiec
  • Imię:Tomasz

Napisany 14 maj 2010 - 10:42

Może mi ktoś wytłumaczyć łopatologicznie do czego służą te komendy?

key_buffer = 5M
max_allowed_packet = 5M
thread_stack = 128K
thread_cache_size = 8
myisam-recover = BACKUP
max_connections = 100
#table_cache = 64
#thread_concurrency = 10

query_cache_limit = 1M
query_cache_size = 6M

[mysql]
no-auto-rehash

[isamchk]
key_buffer = 6M


P.S.

Oficjalna dokumentacja jest po angielsku i nie wszytko rozumiem ;)

#10 Matjas

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 190 postów

Napisany 14 maj 2010 - 10:57

http://translate.google.com/ Dodany obrazek
Po długiej przerwie znów na WHT :)

#11 fudi

    Czasami na forum

  • Użytkownicy
  • 34 postów
  • Skąd:Sosnowiec
  • Imię:Tomasz

Napisany 14 maj 2010 - 11:06

Zobacz postMatjas, o 14 maj 2010 - 10:57, powiedział:


Wybacz mam mieszane odczucia co do translatorów :/

P.S.
Pomoże mi ktoś przy zrozumieniu tych komend?

#12 Matjas

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 190 postów

Napisany 14 maj 2010 - 11:51

No to słownik w rękę i jedziemy, wątpię, że ktoś tu będzie siedział i tłumaczył ci takie coś. Nie wiesz co to max_connections? To naprawdę zastanawiam się co zrobiłeś na maturze
Po długiej przerwie znów na WHT :)

#13 fudi

    Czasami na forum

  • Użytkownicy
  • 34 postów
  • Skąd:Sosnowiec
  • Imię:Tomasz

Napisany 14 maj 2010 - 13:14

Zobacz postMatjas, o 14 maj 2010 - 11:51, powiedział:

No to słownik w rękę i jedziemy, wątpię, że ktoś tu będzie siedział i tłumaczył ci takie coś. Nie wiesz co to max_connections? To naprawdę zastanawiam się co zrobiłeś na maturze

Może mi ktoś wytłumaczyć łopatologicznie do czego służą te komendy?

Nie prosiłem o dokładną translacje tylko wyjaśnienie zasady działania np.

max_connections - maksymalna ilość połączeń (w jednej chwili).

Nie bierz mnie za pierwszego lepszego debila ... jakoś skończyłem tą szkołę; bezproblemowo ;)

Po prostu ludzie na forum zajmują się mysql na bieżąco ... ja dopiero dzisiaj zacząłem zabawę.

Moją specjalizacją są aplikacje internetowe umiem użyć bazy mysql ale usiłuję go skonfigurować dlatego proszę forumowiczów o pomoc :)

#14 fudi

    Czasami na forum

  • Użytkownicy
  • 34 postów
  • Skąd:Sosnowiec
  • Imię:Tomasz

Napisany 14 maj 2010 - 14:09

Po dłuższym namyśle inaczej sformułuję pytanie:

Czy te komendy:

key_buffer = 5M
query_cache_limit = 1M
query_cache_size = 6M

odwołują się do do wartości dla każdego usera osobno czy wszystkich na raz?

#15 tom3kk

    Często na forum

  • Użytkownicy
  • 72 postów
  • Skąd:Oświęcim

Napisany 14 maj 2010 - 15:24

nie sa per client, to wartosci dla wszystkich lacznie,
stary slackware'owiec

irc.freenode.net  @ #slackware.pl

#16 fudi

    Czasami na forum

  • Użytkownicy
  • 34 postów
  • Skąd:Sosnowiec
  • Imię:Tomasz

Napisany 14 maj 2010 - 15:50

Zobacz posttom3kk, o 14 maj 2010 - 15:24, powiedział:

nie sa per client, to wartosci dla wszystkich lacznie

Dzięki ;)

Jak uważasz dobrze opisałem poszczególne komendy?!



[client]
port		= 3306
socket		= /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket		= /var/run/mysqld/mysqld.sock
nice		= 0

[mysqld]
user		= mysql
pid-file	= /var/run/mysqld/mysqld.pid
socket		= /var/run/mysqld/mysqld.sock
port		= 3306
basedir		= /usr
datadir		= /var/lib/mysql
tmpdir		= /tmp
language	= /usr/share/mysql/polish
skip-external-locking	//zezwól na połączenie z zewnątrz | Nasłuchuj połączeń z zewnątrz

key_buffer		= 50M	//rozmiar bufora indexów dla wspólnych wątków
max_allowed_packet	= 10K //maxymalny rozmiar jednego pakietu
thread_stack		= 128K //rozmiar stosu dla każdego wątku
thread_cache_size	= 8 //jak wiele wątków powinien zatrzymać serwer do ponoenego użycia
myisam-recover		= BACKUP // Tryb magazynowania silnika myisam (Jeśli plik danych został zmieniony w trakcie odzyskiwania, zapisz kopię zapasową pliku)
max_connections 	= 100 //Maksymalna ilość jednocześnie połączonych klientów

query_cache_limit 	= 1M //Maxymalny rozmiar wyniku zapytania w cache
query_cache_size 	= 6M //Ilość pamięci przeznaczonych do buforowania wyników zapytania

skip-bdb	//omijanie baz typu bdb
skip-innodb	//omijanie baz typu innodb

//Ustawiamy polskie znaki!
character-sets-dir = /usr/share/mysql/charsets/
default-character-set = latin2

#log		= /var/log/mysql/mysql.log	//ogowanie do dziennika ogólnego zapytanie, które zawiera wpisy rejestru połączeń klientów
#log_slow_queries	= /var/log/mysql/mysql-slow.log	//logowanie długo wykonujących się zapytań
#long_query_time = 2	//czas wykonania po którym zapytanie jest uznane za "wolne"
#log-queries-not-using-indexes	//loguj "wolne" zapytania nie używające indexów

[mysqldump]
quick
quote-names
max_allowed_packet	= 1M

//Ustawiamy polskie znaki!
character-sets-dir = /usr/share/mysql/charsets/
default-character-set = latin2

[mysql]
no-auto-rehash

//Ustawiamy polskie znaki!
character-sets-dir = /usr/share/mysql/charsets/
default-character-set = latin2

[isamchk]
key_buffer		= 6M

!includedir /etc/mysql/conf.d/



#17 tom3kk

    Często na forum

  • Użytkownicy
  • 72 postów
  • Skąd:Oświęcim

Napisany 14 maj 2010 - 16:06

ujdzie, szczerze to nie chce sie mi zagladac do dokumentacji po szczegoly i wczytywac we wszystko,
stary slackware'owiec

irc.freenode.net  @ #slackware.pl

#18 fudi

    Czasami na forum

  • Użytkownicy
  • 34 postów
  • Skąd:Sosnowiec
  • Imię:Tomasz

Napisany 14 maj 2010 - 16:11

Zobacz posttom3kk, o 14 maj 2010 - 16:06, powiedział:

ujdzie, szczerze to nie chce sie mi zagladac do dokumentacji po szczegoly i wczytywac we wszystko,

Na zakończenie mam jeszcze jedno pytanie mianowicie:

Co to za moduł i za co odpowiada?
[isamchk]
key_buffer = 6M
(bo nie wiem jaką wartość ustawić :/

#19 tom3kk

    Często na forum

  • Użytkownicy
  • 72 postów
  • Skąd:Oświęcim

Napisany 14 maj 2010 - 17:46

>> "Check, repair, manipulate and get statistics on MySQL tables."
stary slackware'owiec

irc.freenode.net  @ #slackware.pl

#20 fudi

    Czasami na forum

  • Użytkownicy
  • 34 postów
  • Skąd:Sosnowiec
  • Imię:Tomasz

Napisany 14 maj 2010 - 21:12

Thx temat do zamknięcia jutro przyznam Tobie punkty reputacji ;)





1 Użytkowników czyta ten temat

0 użytkowników, 1 gości, 0 anonimowych użytkowników