Увеличено время ожидания на синхронизацию / мьютекс / арию / PAGECACHE :: cache_lock для mariadb на AWS - PullRequest
0 голосов
/ 28 октября 2019

Я получил обязанности по обслуживанию API, который использует MariaDB (10.0.21) db.t3.2xlarge. Сегодня, без видимой причины (проверил количество запросов, поступающих в API и без аномалий, без изменений кода, без изменений базы данных), база данных стала работать медленно, и даже получение токена доступа к API заняло 4-6секунд (обычно это было бы под 500 мс). Из анализа производительности (за последние 5 часов) я вижу, что для загрузки базы данных по ожиданиям (AAS) большая часть ожидания приходится на «synch / mutex / aria / PAGECACHE :: cache_lock» (29.92), за которым следует CPU (13.87)) и SQL, который создает все это, является выбором из представления, которое до этого момента работало просто отлично. Графики: https://imgur.com/B5baGzx https://imgur.com/BTU6MAf

Все графики, которые я мог получить на RDS: https://imgur.com/a/8XO04gZ

Анализ выбора: https://imgur.com/S9uQJpW

Я не эксперт по базам данных, но, думаю, что-то из этого не сделано должным образом. Вопрос все еще остается ... почему это происходит внезапно? У нас есть автоматическое незначительное обновление для двигателя, но я проверил, и на прошлой неделе обновлений не было. Я также проверил список процессов для базы данных и смог увидеть запрос выбора из v_links, застрявший в «Отправке данных»

Я также запустил запрос, который застрял в «отправке данных» из консоли, иэто закончилось за 10 мс.

Я также создал тему на форумах aws: https://forums.aws.amazon.com/thread.jspa?messageID=921037

1 Ответ

0 голосов
/ 13 ноября 2019

После того, как мы связались с поддержкой AWS и продолжительными исследованиями, мы обнаружили, что max_tmp_table был установлен равным 32, и поскольку у нас было большое количество одновременных запросов к представлению, которое создавало несколько временных таблиц, 32 было слишком маленьким, и начинались таблицы tmp. из-за этого время ожидания кэша арии увеличилось до момента зависания.

...