Как измерить текущую нагрузку на сервер MySQL? - PullRequest
12 голосов
/ 01 октября 2009

Как измерить текущую нагрузку на сервер MySQL? Я знаю, что могу измерить разные вещи, такие как загрузка процессора, использование оперативной памяти, дисковый ввод-вывод и т. Д., Но есть ли общая мера нагрузки, например, сервер загружен на 40% и т. Д.?

Ответы [ 7 ]

14 голосов
/ 01 октября 2009
mysql> SHOW GLOBAL STATUS;

Найдено здесь .

8 голосов
/ 01 октября 2009

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

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

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

4 голосов
/ 22 сентября 2011

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

Да! есть:

SELECT LOAD_FILE("/proc/loadavg")

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

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

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

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

SELECT LOAD_FILE("/proc/cpuinfo")

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

4 голосов
/ 01 октября 2009

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

2 голосов
/ 01 октября 2009

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

1 голос
/ 02 октября 2009

Помимо всех хороших ответов на этой странице (ПОКАЗАТЬ ГЛОБАЛЬНОЕ СОСТОЯНИЕ, VMSTAT, TOP ...), есть также очень простой в использовании инструмент, написанный Джереми Заводным, он идеально подходит для пользователей без прав администратора. Это называется "мытоп". больше информации @ http://jeremy.zawodny.com/mysql/mytop/

0 голосов
/ 27 мая 2016

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...