Дерево страниц

На наших хостинговых серверах установлена утилита pt-kill, с помощью которой можно принудительно завершать медленные запросы MySQL и логировать их.

 

Основные опции

kill - завершить запросы, подходящие под заданные параметры;

print - вывести запросы, подходящие под заданные параметры;

busy-time - длительность запроса;

interval - как часто проверять наличие запросов, подходящих под заданные параметры (если interval не задан, значением по умолчанию будет половина busy-time);

run-time - как долго работать pt-kill (если run-time не задан, pt-kill после запуска будет работать постоянно).

Примеры использования

  • Завершить все запросы к базе с длительностью более 60 секунд:
  • Вывести все запросы длительностью более 60 секунд (не завершая их):
  • Проверять наличие запросов, находящихся в состоянии ожидания, каждые 10 секунд и завершать их:
  • Логировать все запросы длительностью более 60 секунд в файл logs.txt:
  • Запустить pt-kill на 300 секунд и каждые 10 секунд завершать запросы длительностью более 60 секунд:

Наверх

Запуск pt-kill по cron

Утилиту pt-kill можно также запускать по расписанию с помощью cron.

Для этого необходимо:

1) Создать файл скрипта с произвольным именем (например, pt-kill.sh) и сохранить его в необходимой директории аккаунта.

2) Добавить в файл нужную команду, например:

3) Добавить задачу cron, указав периодичность выполнения и путь до файла:

Таким образом, pt-kill будет запускаться каждые 10 минут на 30 секунд, в течение этого времени каждые 5 секунд будет проверять и завершать запросы длительностью более 300 секунд, а также вести лог "убитых" запросов в файл killed_queries.log.

Задание также можно добавить через планировщик Crontab в ПУ:

Завершать процессы MySQL можно также с помощью mysqladmin.

Наверх