我有一个Elastic Beanstalk实例,当内存耗尽时,开始出现500个错误,健康状况下降,这是预期的行为。 现在当内存被释放后,服务器的健康状况恢复正常,但HTTPS请求却停滞不前。服务器上没有CPU或内存活动,但服务器仍然无法加载5个请求中的2个。当我重启Elastic Beanstalk实例后,这个问题就解决了。
我检查了错误日志,但没有任何记录,似乎请求没有到达服务器,而是在负载平衡器上被阻止了。有人遇到过这个问题吗?我试着在Elastic Beanstalk实例上运行一些不同的应用,但结果都一样。
如果有任何建议,或者告诉我相关文档,我将非常感激,因为我在他们的文档中没有找到任何关于这个问题的内容。
谢谢,谢谢
有可能是某个重要的进程被OOM杀死了,还没有正常启动恢复。你可以看看这个问题,寻求这方面的帮助。寻找哪个进程被Linux OOM杀手杀死了?
可能只需重启服务器,一切又可以正常启动。
最好的解决方法是先不要把内存用完。如果你无法升级服务器,可能由于成本原因,那么可以考虑添加一个交换文件。
我有一个Elastic Beanstalk应用,在这个应用中,我使用ebextension添加了一个交换文件。
# .ebextensions/01-swap.config
commands:
"01-swap":
command: |
dd if=/dev/zero of=/var/swapfile bs=1M count=512
chmod 600 /var/swapfile
mkswap /var/swapfile
swapon /var/swapfile
echo "/var/swapfile none swap sw 0 0" >> /etc/fstab
test: test ! -f /var/swapfile