我正在Amazon Elastic Beanstalk上运行一个小的t1.micro实例。 该应用程序本身是一个Java Web服务器,通过.warfile upload,响应来自远程Herokunetworking应用程序的请求。
在部署应用程序时,从Heroku应用程序的请求中将多部分表单数据作为文件inputstream和application / json的组合发送到它。 出于某种原因,无论何时发出请求,实例的健康状况都会迅速跳转到“警告”状态,并随着进一步的请求不可避免地跳转到“严重”状态,从而停止响应任何请求。
我一直在努力弄清楚为什么会发生这种情况。 我从“健康”选项卡中看到的一件事情是,响应请求时,内存使用率几乎一直在> 97%,而另一方面,空闲的CPU几乎总是> 99%。 这对我来说似乎很奇怪。
例如,假设我决定将一个50KB的.pptx文件发布到Java Web服务器(足够大以致一致地崩溃实例)。 我将它上传并以Heroku应用程序的stream的formsPOST到Elastic Beanstalk实例。 该实例快速跳转到警告状态,然后在我认为正在尝试读取/写入stream的30秒左右之后,再次跳转到严重并崩溃。
为什么将一个50KB的文件作为一个stream发送到实例足以导致实例崩溃? 我发现很难下载日志,因为它们似乎永远需要AWS才能生成。 有没有简单的方法来增加实例的内存(即我应该跳到更高层次的实例)? 谢谢你的帮助。