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

Странная зомби-задача MySQL

Мне кажется, что в SQL всегда есть одна задача, которая выполняется на моем сервере на работе, и мои личные вещи, которые «застревают» и продолжают работать вечно.

PID USER      PR   NI VIRT  RES  SHR S %CPU  %MEM  TIME+   COMMAND
890 mysql     20   0  326m  54m 7704 S 9999  1.4  13:05.03 mysqld 

Есть ли способ настроить бота, чтобы он находил подобные вещи, выключил его и перезапустил MySQL, чтобы мне не приходилось делать это вручную?

Обновить

Я должен отметить, что он не всегда остается на 9999% ЦП. Иногда показывает 1.4 или что-то в этом роде

Вы запускали сценарий настройки MySQL, например mysqltuner.pl или tuning-primer.sh чтобы убедиться, что ваши базовые настройки MySQL верны?

Вы не можете просто произвольно изменить значения настроек на то, что есть у кого-то, поскольку конфигурация сильно зависит от доступных аппаратных ресурсов, объема хранимых данных и запросов, выполняемых для этих данных. Конфигурация MySQL, которая отлично работает на моем сервере, может убить ваш сервер.

Вы никогда не должны перезапускать базу данных, чтобы завершить запрос. В MySQL вы можете просматривать запущенные запросы с помощью show full processlist; и завершить процесс с помощью kill $CONNECTIONNUMBER;.

Вы можете написать сценарий для выполнения этой функции.

Я разговаривал с одним из моих администраторов баз данных MySQL, и он упомянул мне, что key_buffer_size может быть установлен по умолчанию, что может быть причиной высокой загрузки ЦП. Обычно увеличение значения по умолчанию с 8 МБ до примерно 330 МБ, если ресурсы памяти доступны, должно помочь решить эту проблему. Это изменение потребует периода обслуживания для перезапуска служб MySQL.