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