Назад | Перейти на главную страницу

Что могло вызвать эти (см. График) всплески времени отклика БД?

У меня есть стек LAMP с Percona MySQL.

С помощью New Relic я отслеживаю / настраиваю / настраиваю свой новый сервер, готовый к использованию вживую.

Что меня раздражает, так это то, что я периодически получаю (обычно после периодов бездействия), когда время отклика БД (для простых запросов, которые обычно отвечают в течение нескольких мс) резко возрастает и портит мои средние значения.

Как будто кеш выгружается, но это не так. У него 3 ГБ оперативной памяти, потребление составляет около 512 МБ и выгружено 0 байт.

См. График.

Есть идеи, что могло быть причиной этого? Это не так вероятно, что это будет проблемой в производстве, так как будет постоянный поток трафика, поддерживающий все это, но я все равно хотел бы исследовать, если что-то не происходит.

Спасибо.

Просто выстрел: возможно, разрешение DNS-имени сервера базы данных.

DNS действительно может быть проблемой. Даже если MySQL находится на локальном хосте, он выполняет DNS-запрос, если в my.cnf нет пропуска имени-разрешения. И да, это может занять 500 мс и больше.

Я бы собирал медленный журнал с long_query_time = 0 и анализировал журнал с помощью pt-query-digest. Он выявит возможные проблемы с запросами, такие как время блокировки дольше обычного, неправильный план выполнения запроса, иногда длинные запросы ввода-вывода.

Если шипы повторяются ежедневно, соберите журнал примерно в это время.

Вы также можете увеличить подробность медленного журнала, это даст больше деталей для анализа.

Сравните график времени ответа на запрос с графиком возраста контрольной точки InnoDB - может быть, InnoDB в это время выполняет штормовую очистку?

Мое лучшее предположение без более тщательного изучения - автоматическая очистка или синхронизация транзакций с диском. Вы сказали, что неправильное поведение является периодическим, какой период? Период совпадает с какими-либо настройками mysql?