Как измерить текущую нагрузку сервера MySQL?
Как измерить текущую нагрузку сервера MySQL? Я знаю, что могу измерять разные вещи, такие как использование процессора, использование ОЗУ, диск IO и т. д., Но есть ли общая мера нагрузки, например, сервер находится на 40% нагрузки и т. д.?
7 ответов
понятие "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, но отслеживает запросы, которые занимают больше времени, и убивает их после определенного времени.