Я запускаю небольшой экземпляр t1.micro на Amazon Elastic Beanstalk. Само приложение представляет собой веб-сервер Java, загруженный через файл .war, который отвечает на запросы от удаленного веб-приложения Heroku.
После развертывания приложения в него отправляются данные из нескольких частей в виде потоков ввода файлов и application / json из запросов от приложения Heroku. По какой-то причине при каждом запросе состояние экземпляра быстро переходит в состояние «Предупреждение», а при дальнейших запросах он неизбежно переходит в состояние «Серьезный» и, таким образом, перестает отвечать на любой запрос.
Я пытался точно выяснить, почему это происходит. Одна вещь, которую я узнал из вкладки Health, заключается в том, что использование памяти почти всегда составляет> 97% при ответе на запросы, тогда как, с другой стороны, простаивающий процессор почти всегда составляет> 99%. Мне это кажется странным.
Например, предположим, что я решил опубликовать файл .pptx размером 50 КБ на веб-сервере Java (достаточно большой, чтобы постоянно вызывать сбой экземпляра). Я загружаю его и отправляю POST как поток из приложения Heroku в экземпляр Elastic Beanstalk. Экземпляр быстро переходит в состояние «Предупреждение», а затем примерно через 30 секунд после того, как я думаю, пытается прочитать / записать поток, снова переходит в состояние «Серьезный» и аварийно завершает работу.
Почему файл размером 50 КБ, отправленный в экземпляр в виде потока, будет достаточно большим, чтобы вызвать сбой экземпляра? Мне трудно загружать журналы, потому что AWS, похоже, занимает целую вечность. Есть ли простой способ увеличить объем памяти экземпляра (т.е. следует ли перейти на более высокий уровень экземпляра)? Спасибо за вашу помощь.