MySQL Server неожиданно достигает 100% (Amazon AWS RDS)
Пожалуйста помоги! Мы боролись с этим в течение нескольких месяцев. На этой неделе мы подняли наш экземпляр RDS до самого высокого уровня производительности, и, хотя число случаев сократилось, у нас все еще внезапно достигнут 100% наш БД. Это происходит из ниоткуда. Иногда в 2 часа ночи, иногда в полдень.
Я исключил DOS - наши журналы доступа к страницам имеют нормальный трафик
Я исключил memcached, внезапно умирающий (попадания и промахи продолжаются как обычно).
SHOW PROCESSLIST пока у нас выдает отчеты о 500 запросах в очереди. Если я убью их или перезапущу сервер, они просто продолжат возвращаться, а потом, в конце концов, из неизвестного, наш сервер вернется в нормальное состояние. Иногда до 3 часов.
Наши плохо выполняющиеся запросы занимают 0,02 секунды, когда сервер в конечном итоге возвращается в нормальное состояние, но пока мы находимся на 100% -ной физической фазе ЦП, эти запросы никогда не завершаются.
Пожалуйста помоги!!!!! Кто-нибудь знает что-нибудь об оптимизации запросов MYSQL? Может ли сервер внезапно принять решение использовать разные индексы, что ставит его в спираль?
1 ответ
http://www.mysqlperformanceblog.com/2010/09/10/cache-miss-storm/
Как выяснилось, наша проблема была промахом штормового тайника, промахом АКА.
Мы решили это путем внедрения 50% срока действия кэша. В основном для каждого элемента в memcache мы создаем второй элемент кеша с аналогичным ключом плюс добавленную строку "регенерировать". Срок действия этого элемента истекает ровно на 50% от обычного времени истечения срока действия кеша, что указывает на следующий запрос, что мы приближаемся к истечению срока действия кеша, и следующий запрос должен будет попытаться восстановить кеш.
Это предотвращает поток пользователей, пытающихся одновременно восстановить кеш, и гарантирует, что наш кеш имеет наилучшие шансы всегда оставаться свежим!
Хитрый, чтобы выследить!