MySQL memory
При создании нового VPS и установки на него различных приложений, ставятся конфиги по умолчанию. Эти конфиги не всегда являются наилучшими для производительности на маломощных VPS и получается, что на просто работу приложений тратится почти все ресурсы мало чего оставляя собственно на выполнение задач, для которых VPS был куплен.
Наиболее ресурсоемким в этом отношении является MySQL, который поставляется с пустым конфиг файлом, что подрузамевает, что используются значения по умолчанию, которые в большинстве своем расчитаны на далеко не слабые выделенные сервера, а не VPS.
Конфиг файл MySQL в большинстве Linux дистрибутивов лежит здесь: /etc/my.cnf
Этого файла вообще может не оказатся в системе, в этом случае его нужно создать. Итак, 2 варианта файла my.cnf для 2 разных типов VPS.
- Вариант 1. MySQL используется время от времени, на VPS с памятью 128 Мб и меньше и важно, чтобы он тратил ресурсов как можно меньше.
[mysqld] datadir=/var/lib/mysql skip-locking skip-bdb skip-innodb skip-networking safe-show-database query_cache_limit=64K query_cache_size=128K query_cache_type=1 max_user_connections=100 max_connections=200 interactive_timeout=10 wait_timeout=20 connect_timeout=20 thread_cache_size=64 key_buffer = 16K join_buffer=16K max_connect_errors=20 max_allowed_packet=1M table_cache=64 record_buffer=64K sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K thread_concurrency=2 myisam_sort_buffer_size=8M server-id=1 collation-server=utf8_unicode_ci default-character-set=utf8 [mysql.server] user=mysql basedir=/var/lib [safe_mysqld] err-log=/var/log/mysqld.log pid-file=/var/lib/mysql/mysql.pid open_files_limit=8192 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash #safe-updates [isamchk] key_buffer = 8M sort_buffer_size = 8M [myisamchk] key_buffer = 8M sort_buffer_size = 8M [mysqlhotcopy] interactive-timeout [client] default-character-set=utf8
- Вариант 2. Для VPS/Dedicated с 512-1024 Мб памяти:
[mysqld] datadir=/var/lib/mysql skip-locking skip-bdb skip-innodb skip-networking safe-show-database query_cache_limit=1M query_cache_size=32M ## 32MB for every 1GB of RAM query_cache_type=1 max_user_connections=200 max_connections=500 interactive_timeout=10 wait_timeout=20 connect_timeout=20 thread_cache_size=128 key_buffer=128M ## 128MB for every 1GB of RAM join_buffer=1M max_connect_errors=20 max_allowed_packet=16M table_cache=1024 record_buffer=1M sort_buffer_size=1M ## 1MB for every 1GB of RAM read_buffer_size=1M ## 1MB for every 1GB of RAM read_rnd_buffer_size=1M ## 1MB for every 1GB of RAM thread_concurrency=4 ## Number of CPUs x 2 myisam_sort_buffer_size=64M server-id=1 collation-server=utf8_unicode_ci default-character-set=utf8 [mysql.server] user=mysql basedir=/var/lib [safe_mysqld] err-log=/var/log/mysqld.log pid-file=/var/lib/mysql/mysql.pid open_files_limit=8192 [mysqldump] quick max_allowed_packet=16M [mysql] no-auto-rehash #safe-updates [isamchk] key_buffer=64M sort_buffer=64M read_buffer=16M write_buffer=16M [myisamchk] key_buffer=64M sort_buffer=64M read_buffer=16M write_buffer=16M [mysqlhotcopy] interactive-timeout [client] default-character-set=utf8
