Мониторинг используемых подключений в mysql для отладки "слишком большого количества соединений"
На сервере производства LAMP я иногда получаю ошибку "слишком много соединений" от MYSQL, я хочу добавить мониторинг, чтобы выяснить, является ли причина превышением предела максимальных подключений.
Мой вопрос: как я могу запросить из mysql или из mysqladmin текущее количество используемых соединений?
(Я заметил, что статус show дает полные соединения, а не используемые в настоящее время.)
Ответы
Ответ 1
Очень мощный инструмент для мониторинга MySQL - innotop
. Вы можете найти его здесь:
https://github.com/innotop/innotop
В Debian Lenny это часть пакета mysql-client-5.0, и я думаю, он доступен и для других дистрибутивов. Он особенно эффективен при мониторинге внутренних компонентов InnoDB, но также обеспечивает общий мониторинг сервера.
В режиме "Переменные и состояние" он контролирует переменные "Соединения" и "Макс_соединения" (среди прочих). Он отображает абсолютные и инкрементные значения - последний может дать вам представление о текущих соединениях.
Поскольку innotop предоставляет неинтерактивный режим, вы можете легко создавать полностью автоматизированный мониторинг, вызывая innotop из некоторых настраиваемых скриптов, nagios-проверок или любой другой системы.
Ответ 2
http://www.mail-archive.com/[email protected]/msg00830.html
Взгляните на этот вопрос - может быть полезно.
Ответ 3
SHOW STATUS не отображает общее соединение: оно отображает текущие соединения. Вы получаете сообщение об ошибке слишком большого количества соединений, когда количество открытых подключений (бездействия или нет) ограничивает лимит, установленный для сервера.
Из вашего комментария о SHOW STATUS, похоже, что у вас на вашем сервере много простоя. Это указывает на неправильное использование постоянных соединений; некоторые библиотеки, которые утверждают, что поддерживают постоянные соединения, не обрабатывают их должным образом, и они имеют тенденцию открывать новые соединения, даже если доступны свободные соединения.
Узнайте, какое приложение выполняет такие запросы и настройте его на использование постоянных подключений.
Ответ 4
Чтобы получить общее количество параллельных подключений, разрешенных MySQL, вы должны проверить
show variables like 'max_connections'
и сколько одновременных подключений в настоящее время можно измерить с помощью
show status like 'max_used_connections'
Вы должны контролировать эти переменные. Если вам нужен коммерческий инструмент, который отслеживает важные показатели MySQL, вы можете попробовать MySQL Enterprise Monitor, MONyog и т.д.
Ответ 5
Вам может быть проще получить "Администратор MySQL" , отсюда вы можете легко отслеживать, откуда используются используемые соединения. См. Здесь об connections, используемом...