Я застрял, пытаясь решить проблему с MySQL. Несколько раз в час, примерно на 60 секунд, MyuSQL перестает отвечать на запросы, в результате чего наш сайт становится недоступным в течение этого периода. Я включил журнал медленных запросов и ничего не обнаружил (все запросы во время простоя, естественно, очень медленные, но, похоже, ни один запрос не вызывает проблемы).
Я отключил все (свои) задания cron, и проблема все еще сохраняется.
Я вышел на первое место во время простоя, а MySQL почти даже не работает, что заставляет меня думать, что это не проблема загрузки / неправильного запроса.
верхний скриншот здесь: Немного статистики по моим vps:
1,8 ГБ оперативной памяти, 2,2 ГГц процесс. MySQL 5.1.56. Мой сайт работает ослепительно быстро, за исключением тех периодов, когда он блокируется. Средняя загрузка процессора составляет 40%.
Вот мой my.cnf:
[mysqld]
сейф-шоу-база данных tmp_table_size = 24M
max_heap_table_size = 32 млн
query_cache_limit = 1 млн
query_cache_size = 70 МБ
query_cache_type = 1
max_connections = 200
collation_server = utf8_unicode_ci character_set_server = utf8
delayed_insert_timeout = 40
Interactive_timeout = 10
wait_timeout = 400
connect_timeout = 20
thread_cache_size = 64
key_buffer = 50 млн
join_buffer = 1 млн
max_connect_errors = 20
max_allowed_packet = 8 млн
table_cache = 1024
record_buffer = 1 млн
sort_buffer_size = 2M
read_buffer_size = 2 млн
read_rnd_buffer_size = 1 млн
thread_concurrency = 2
myisam_sort_buffer_size = 32 МБ
innodb_buffer_pool_size = 200 млн
Мы высоко ценим любые советы о том, как отследить эту проблему.
Если вы можете войти в консоль mysql во время простоя, попробуйте запустить
SHOW PROCESSLIST;
Здесь должны быть перечислены запущенные потоки mysql и выполняемые ими запросы. Это должно дать вам немного больше представления о том, что делает MySQL, из-за чего он не реагирует.
Хостинговая компания отследила это до неправильной конфигурации apache, они увеличили ограничения памяти для apache, и теперь проблема решена.
Установите Cacti на центральный сервер управления / мониторинга. Затем установите шаблоны mysql-cacti.
Я бы настроил это с помощью системного мониторинга, а также всего мониторинга mysql. Это должно дать вам большую часть данных, необходимых для диагностики.
На сайте шаблонов также есть отличная документация.