Приложение Vapor, развернутое на AWS, застревает после большой нагрузки

У меня развернуто приложение Vapor 3 Swift на AWS в контейнере Docker. Я следовал этой инструкции, и приложение было успешно развернуто. Кроме того, у меня есть база данных RDS PostgreSQL, работающая на той же учетной записи AWS.

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

Кажется, это не проблема с базой данных, потому что в то же время я запускаю Vapor локально, подключенный к той же базе данных RDS, и все работает отлично. Тем не менее, есть эта строка постоянно появляется в журналах базы данных:

FATAL: разрыв соединения по команде администратора

Я не уверен, является ли это причиной всей проблемы, потому что, как я уже говорил, она отлично работает локально. Других ошибок в логах нет. Когда я прекращаю задание и запускаю его снова, бэкэнд возвращается к работе.

Это тонкости AWS? Я был бы очень признателен за любую помощь.

0 ответов

Попробуйте увеличить файловые дескрипторы для быстрого процесса. В конфигурационный файл супервизора добавить

minfds=1048576

под надзором разделе.

Другие вопросы по тегам