Как измерить текущую нагрузку сервера MySQL?

Как измерить текущую нагрузку сервера MySQL? Я знаю, что могу измерять разные вещи, такие как использование процессора, использование ОЗУ, диск IO и т. д., Но есть ли общая мера нагрузки, например, сервер находится на 40% нагрузки и т. д.?

7 ответов


с помощью top или htop вы можете следить за использованием в Linux realtime


mysql> SHOW GLOBAL STATUS;

нашел здесь.


понятие "40% нагрузки" не очень хорошо определены. Ваше конкретное приложение может по-разному реагировать на ограничения для разных ресурсов. Приложения обычно связаны одним из трех факторов: доступная (физическая) память, доступное время процессора и дисковый ввод-вывод.

в Linux (или, возможно, других системах *NIX) вы можете получить снимок этих систем с помощью vmstat или iostat (который предоставляет более подробную информацию о disk IO).

однако, чтобы подключить их к "40% нагрузки", вы необходимо понять характеристики производительности вашей базы данных при типичной нагрузке. Лучший способ сделать это-протестировать типичные запросы при различной нагрузке, пока вы не заметите, что время отклика резко увеличивается (это будет означать, что вы попали в узкое место в памяти, процессоре или диске). Эта нагрузка должна считаться вашим критическим уровнем, который вы не хотите превышать.


есть ли общая мера нагрузки, например, сервер находится на 40% нагрузки ?

да! есть:

SELECT LOAD_FILE("/proc/loadavg")

работает на машине linux. Он отображает среднее значение загрузки системы за последние 1, 5 и 15 минут.

средняя загрузка системы-это среднее число процессов, которые находятся в работоспособном или бесперебойном состоянии. Процесс в работоспособном состоянии либо использует процессор, либо ожидает его использования. Процесс в бесперебойное состояние ожидает некоторого доступа ввода-вывода, например, ожидание диска. Средние значения берутся за три временных интервала. Средние значения нагрузки не нормируются для числа Процессоры в системе, поэтому средняя загрузка 1 означает, что одна система CPU загружается все время, в то время как на системе 4 CPU это означает, что она простаивала 75% времени.

поэтому, если вы хотите нормализовать, вам также нужно подсчитать количество процессоров.

вы можете сделать это с

SELECT LOAD_FILE("/proc/cpuinfo")

см. также 'man proc'


в системах на базе linux стандартная проверка обычно выполняется в режиме uptime, индекс нагрузки возвращается в соответствии с описанными метриками здесь.


помимо всех хороших ответов на этой странице (показать глобальный статус, VMSTAT, TOP...) существует также очень простой в использовании инструмент, написанный Jeremy Zawodny, он идеально подходит для пользователей, не являющихся администраторами. Он называется "mytop". подробнее @ http://jeremy.zawodny.com/mysql/mytop/


Привет друг согласно моим исследованиям у нас есть команда, как

  • MYTOP: программа с открытым исходным кодом, написанная на языке PERL
  • MTOP: также программа с открытым исходным кодом, написанная на PERL, работает так же, как MYTOP, но отслеживает запросы, которые занимают больше времени, и убивает их после определенного времени.

Ссылка для деталей вышеуказанной команды