marczak 0 Zgłoś post Napisano Październik 31, 2008 Witam serdecznie, Mam pewien problem. Posiadam serwer, Core2Duo + 2GB ram. Na nim mam średniej wielkości serwis, i mam problem z mysql, gdyż strasznie serwer obciąża. w 1 bazie jest ok 63 000 tabel. Mam więc pytanie, co byście jeszcze zmienili w moim my.cnf # # The MySQL database server configuration file. # # You can copy this to one of: # - "/etc/mysql/my.cnf" to set global options, # - "~/.my.cnf" to set user-specific options. # # One can use all long options that the program supports. # Run program with --help to get a list of available options and with # --print-defaults to see which it would actually understand and use. # # For explanations see # http://dev.mysql.com/doc/mysql/en/server-system-variables.html # This will be passed to all mysql clients # It has been reported that passwords should be enclosed with ticks/quotes # escpecially if they contain "#" chars... # Remember to edit /etc/mysql/debian.cnf when changing the socket location. [client] port = 3306 socket = /var/run/mysqld/mysqld.sock # Here is entries for some specific programs # The following values assume you have at least 32M ram # This was formally known as [safe_mysqld]. Both versions are currently parsed. [mysqld_safe] socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] # # * Basic Settings # 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 #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. #server-id = 1 log_bin = /var/log/mysql/mysql-bin.log # WARNING: Using expire_logs_days without bin_log crashes the server! See README.Debian! 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! # !includedir /etc/mysql/conf.d/ Udostępnij ten post Link to postu Udostępnij na innych stronach
exa 0 Zgłoś post Napisano Październik 31, 2008 w 1 bazie jest ok 63 000 tabel Jeżeli masz tyle tabel to najważniejsze jest odhashowanie table_cache i zmienia tej wartości na ilość tabel, które twój skrypt może mieć jednocześnie otwarte + jakiś zapas: #table_cache = 64 Po przeładowaniu serwera sprawdzić ilość wolnej pamięci RAM i zacząć kilkukrotnie powiększać wszystkie bufory przeładowując po każdej serii zmian serwer i sprawdzając zajętość pamięci RAM. [EDIT] Nie wiemy jakie zapytania obciążają Twój serwer, zerknij na początek na skrypt pomagający tuningować podstawowe parametry MySQL: http://www.howtoforge.org/tuning-mysql-per...with-mysqltuner Udostępnij ten post Link to postu Udostępnij na innych stronach
marczak 0 Zgłoś post Napisano Październik 31, 2008 jeżeli chodzi o obciążenie ram to jest tak max 600 MB, gorzej z procesorem. Udostępnij ten post Link to postu Udostępnij na innych stronach
zrio 6 Zgłoś post Napisano Październik 31, 2008 gorzej z procesorem. Niech zgadnę... mysqlcheck szaleje po restarcie? Udostępnij ten post Link to postu Udostępnij na innych stronach
marczak 0 Zgłoś post Napisano Październik 31, 2008 heh dokladnie Udostępnij ten post Link to postu Udostępnij na innych stronach
beliq 442 Zgłoś post Napisano Listopad 1, 2008 heh dokladnie nic dziwnego, Twoja konfiguracja woła o pomstę do nieba... 1) na bank nie potrzebny Ci dziennik binarny - wyłączą go, oszczędź cykli IO i CPU 2) zwiększ cache tabel 3) skoro masz 2rdzeniowy procesor, to dlaczego nie pozwolić MySQLowi na obsługę dwóch wątków jednocześnie? 4) skoro masz 2 GB RAM, to dlaczego tak skąpisz na bufor zapytań? 5) przy takiej ilości tabel i danych, a także skąpej ilości pamięci, nie łudź się, że bufor indeksów na coś się zda 6) zwiększ bufory sortowania 7) etc. etc. etc 8) daruj sobie hosting for phpBB by przemo, obsługiwałem jako administrator(i wciąż obsługuję) nie jeden taki projekt i powiem Ci, że to co masz teraz to kropla w morzu gorzyczy, lepiej się zająć hodowlą kwiatów 9) kupuj maszyny z procesorami QuadCore i dyskami 15K RPM zamiast wielu "szrotów" 10) oby Ci bozia dała los na loterii na to co w.w. w punkcie 9 11) dobranoc... Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość normanos Zgłoś post Napisano Listopad 1, 2008 kropla w morzu gorzyczy yyy? WTF? Udostępnij ten post Link to postu Udostępnij na innych stronach
marczak 0 Zgłoś post Napisano Listopad 1, 2008 teraz działa dużo lepiej. Narazie dziękuje za pomoc wszystkim. Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość N3T5kY Zgłoś post Napisano Listopad 6, 2008 yyy? WTF? Chyba goryczy lepiej się zająć hodowlą kwiatów Udostępnij ten post Link to postu Udostępnij na innych stronach