Назад | Перейти на главную страницу

Меньше максимально возможного использования памяти

Я использую MySQLTuner для оптимизации своей базы данных, и единственная проблема, с которой я столкнулся:

[!!] Максимально возможное использование памяти: 14,8 ГБ (126% установленной оперативной памяти)

Я не уверен, что мне следует изменить, чтобы уменьшить объем моей 12 ГБ оперативной памяти. У меня есть база данных со 110 таблицами, 10 000 000 строк (довольно быстро растет) и в среднем 250 пользователей в сети. Мой my.cnf выглядит так:

query_cache_limit = 1 млн

query_cache_size = 128 МБ

query_cache_type = 1

max_user_connections = 2000

max_connections = 2000

Interactive_timeout = 100

wait_timeout = 100

connect_timeout = 100

thread_cache_size = 128

key_buffer = 16M

join_buffer = 1 млн

max_allowed_packet = 16 млн

table_cache = 15360

record_buffer = 1 млн

sort_buffer_size = 4M

read_buffer_size = 2 млн

max_connect_errors = 10

thread_concurrency = 8

myisam_sort_buffer_size = 64 МБ

идентификатор сервера = 1

уменьшите max_connections до 200 и wait_timeout до 10

Использование памяти MySQL довольно сложно предсказать. Я бы порекомендовал взглянуть на http://www.mysqlperformanceblog.com/2006/05/17/mysql-server-memory-usage/ который дает представление о том, что использует память в вашей установке. Но подведем итог:

«Фактически, типичный сервер с 8 ГБ памяти часто работает с максимальным теоретическим использованием памяти 100 ГБ или более».

Или, другими словами, не беспокойтесь о максимально возможном использовании памяти, если только вы не заметите свопинг сервера.

Когда дело доходит до настройки базы данных, ваши среднестатистические «пользователи в сети» не представляют особого интереса. Вам необходимо учитывать пиковые запросы. В зависимости от ваших реальных потребностей вы можете отбросить любое максимальное количество подключений, размер буфера сортировки, буфер чтения или кеш запросов. Тогда всегда есть решение «бросить на это больше памяти».

max_user_connections=2000
max_connections=2000

Их можно значительно уменьшить, чтобы настроить MySQL.