fudi 0 Zgłoś post Napisano Maj 13, 2010 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. [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! Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość tom3kk Zgłoś post Napisano Maj 13, 2010 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 Udostępnij ten post Link to postu Udostępnij na innych stronach
fudi 0 Zgłoś post Napisano Maj 13, 2010 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 " Udostępnij ten post Link to postu Udostępnij na innych stronach
tym 205 Zgłoś post Napisano Maj 13, 2010 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. Udostępnij ten post Link to postu Udostępnij na innych stronach
fudi 0 Zgłoś post Napisano Maj 13, 2010 skip-innodb - ok odhaszuję nie używam tego typu baz! Natomiast: 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 Udostępnij ten post Link to postu Udostępnij na innych stronach
fudi 0 Zgłoś post Napisano Maj 14, 2010 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 Udostępnij ten post Link to postu Udostępnij na innych stronach
hemi 20 Zgłoś post Napisano Maj 14, 2010 Spróbuj uzyć skryptów mysqltuner.pl i tuning-primer Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość tom3kk Zgłoś post Napisano Maj 14, 2010 oficjalna dokumentacja MySQL, Udostępnij ten post Link to postu Udostępnij na innych stronach
fudi 0 Zgłoś post Napisano Maj 14, 2010 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 Udostępnij ten post Link to postu Udostępnij na innych stronach
Matjas 2 Zgłoś post Napisano Maj 14, 2010 http://translate.google.com/ Udostępnij ten post Link to postu Udostępnij na innych stronach
fudi 0 Zgłoś post Napisano Maj 14, 2010 http://translate.google.com/ Wybacz mam mieszane odczucia co do translatorów :/ P.S. Pomoże mi ktoś przy zrozumieniu tych komend? Udostępnij ten post Link to postu Udostępnij na innych stronach
Matjas 2 Zgłoś post Napisano Maj 14, 2010 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 Udostępnij ten post Link to postu Udostępnij na innych stronach
fudi 0 Zgłoś post Napisano Maj 14, 2010 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 Udostępnij ten post Link to postu Udostępnij na innych stronach
fudi 0 Zgłoś post Napisano Maj 14, 2010 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? Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość tom3kk Zgłoś post Napisano Maj 14, 2010 nie sa per client, to wartosci dla wszystkich lacznie, Udostępnij ten post Link to postu Udostępnij na innych stronach
fudi 0 Zgłoś post Napisano Maj 14, 2010 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/ Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość tom3kk Zgłoś post Napisano Maj 14, 2010 ujdzie, szczerze to nie chce sie mi zagladac do dokumentacji po szczegoly i wczytywac we wszystko, Udostępnij ten post Link to postu Udostępnij na innych stronach
fudi 0 Zgłoś post Napisano Maj 14, 2010 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ć :/ Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość tom3kk Zgłoś post Napisano Maj 14, 2010 >> "Check, repair, manipulate and get statistics on MySQL tables." Udostępnij ten post Link to postu Udostępnij na innych stronach
fudi 0 Zgłoś post Napisano Maj 14, 2010 Thx temat do zamknięcia jutro przyznam Tobie punkty reputacji Udostępnij ten post Link to postu Udostępnij na innych stronach