Использование памяти MYSQL
У меня установлен MySQL на веб-сервере VPS Windows 2008 с 1 ГБ памяти.
Есть ли способ установить максимальный лимит использования памяти для MYSQL.
У меня установлен верстак, если это можно сделать через это.
Большое спасибо
Джон
1 ответ
Если вы действительно хотите наложить жесткий лимит, вы можете сделать это, но вам придется делать это на уровне операционной системы, поскольку нет встроенных настроек. В Linux вы можете использовать ulimit, но вам, вероятно, придется изменить способ запуска MySQL, чтобы навязать это.
Лучшее решение состоит в том, чтобы настроить ваш сервер так, чтобы комбинация обычных настроек памяти MySQL приводила к общему снижению использования памяти вашей установкой MySQL. Это, конечно, отрицательно скажется на производительности вашей базы данных, но некоторые настройки, которые вы можете настроить в my.ini:
key_buffer_size
query_cache_size
query_cache_limit
table_cache
max_connections
tmp_table_size
innodb_buffer_pool_size
Для планирования использования памяти в Linux вы можете легко использовать скрипт
while true
do
date >> ps.log
ps aux | grep mysqld >> ps.log
sleep 60
done
если вы пытаетесь проверить распределение кеша таблицы, запустите "FLUSH TABLES" и посмотрите, когда использование памяти уменьшается.
Обратите внимание, что из-за того, как память выделяется из ОС, вы можете не увидеть, как "VSZ" падает. Вместо этого вы можете увидеть регулярную очистку таблиц или уменьшение кеша таблиц, что сокращает потребление памяти по причине.
Часто полезно проверить, сколько памяти выделил Innodb. На самом деле это часто одна из первых вещей, которые я делаю, так как она наименее навязчива. Бежать SHOW ENGINE INNODB STATUS
и искать блок памяти информации