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

RDS очень медленная и несовместимая с памятью

Пару часов назад один из наших экземпляров AWS EC2 резко увеличил загрузку ЦП до 90–100%.

Этот сервер вместе с несколькими другими производственными серверами использует один основной экземпляр RDS для баз данных.

Все экземпляры сервера, обращающиеся к этому экземпляру RDS, не отвечают.

Вот ошибка, которая возникает несколько раз (если не сотни) из журналов sql на AWS:

140908 21:00:28 [ERROR] /rdsdbbin/mysql/bin/mysqld: Sort aborted: Error writing file '/rdsdbdata/tmp/MYrOqeNU' (Errcode: 28)

Я исследовал код ошибки и мне сказали, что это означает проблемы с хранилищем, поэтому мы проверили монитор, и он, по-видимому, продолжал увеличиваться с 10 ГБ до <1 ГБ. Для меня это не имеет смысла, если только по какой-то причине файлы tmp размером в ГБ не испорчены.

Также следующая команда MySQL запускает около 28 процессов (раз больше ста):

show processlist;

Я действительно не администратор базы данных и чувствую себя застрявшим. Я предоставлю любую дополнительную информацию по запросу.

В итоге оказывается, что на экземпляре, на котором размещается RDS, действительно не хватало места для хранения. В код ошибки 28, выданный MySQL, был точным. Процессы SQL просто продолжали резервное копирование, так как хранилища не было. У нас также был запрос, который выполнял один сайт, который был довольно неэффективным - его выполнение занимало более одной минуты. Этот запрос мог распространять всю проблему (по той или иной причине, о которой я не знаю).

У нас не было никаких сигналов тревоги для этого экземпляра, поэтому мы не могли отрегулировать пространство для хранения до тех пор, пока все наши производственные площадки не остановились.

Мы только удвоил место для хранения и использовал «Применить немедленно» вариант и ждал ~ 1-2 часа. После этого оставалось достаточно места для хранения, чтобы все могло работать бесперебойно. Мы также установили сигналы тревоги на всех наших экземплярах RDS ...