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

Почему возникает задержка с выполнением запросов в моем экземпляре RDS

У меня есть приложение, работающее на экземпляре ec2 m3, и mysql, работающее на экземпляре dRDS. Они оба находятся в одном регионе, VPC, однако, похоже, что они находятся в разных зонах доступности.

Проблема в том, что выполнение запросов может быть мучительно медленным - я говорю о задержках от 700 мс до секунды. Я подозреваю, что задержка связана с подключением к серверу RDS, но я не совсем уверен.

Что именно я могу сделать, чтобы полностью уменьшить / устранить эту задержку. На моем локальном хосте те же запросы занимают самое большее от четверти до половины миллисекунды. Я проверял в непиковые часы с минимальным трафиком или без него и даже со сбросом моих живых данных на моем локальном хосте. Так что проблема не может быть в большом трафике или большом количестве данных.

== РЕДАКТИРОВАТЬ ===

Вот характеристики экземпляра RDS:

Экземпляр и IOPS

Класс экземпляра: db.m3.medium

Тип хранилища: выделенный IOPS (SSD)

IOPS: 1000 Хранение: 100 ГБ

Задержка между зонами доступности должна быть довольно низкой (например, менее 25 мсек).

Если запросы вашего приложения идут последовательно, а не параллельно, тогда потребуется время прохождения туда и обратно через зоны доступности (время будет суммировано для серии).

Я бы создал машину ec2 в той же зоне доступности, что и экземпляр RDS, и использовал бы ping между вашими экземплярами ec2, чтобы определить базовую задержку.

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