Eig*_*ght 9 ruby linux out-of-memory amazon-web-services docker
我在AWS上的docker容器中托管了一个Ruby应用程序.不幸的是,这个Ruby应用程序已知会泄漏内存,因此最终会占用所有可用内存.
我或许天真地期待OOM杀手被调用并杀死Ruby进程但没有任何反应.最终机器无响应(Web服务器不响应,ssh被禁用).我们强制从AWS控制台重启机器并在消息日志中获取以下内容,因此在重新启动时它确实存在:
Apr 30 23:07:14 ip-10-0-10-24 init: serial (ttyS0) main process (2947) killed by TERM signal
Run Code Online (Sandbox Code Playgroud)
我不相信这是AWS中的资源耗尽(即用尽信用).如果我定期重启应用程序,服务器永远不会停机.
我在这里非常茫然; 为什么内存压力会导致机器锁定?
小智 1
我认为您假设 OOM 将始终针对您的 Ruby 应用程序,但我认为情况并非如此。你的日志行显示它杀死了你的 tty 连接。我敢打赌它会在您的 Ruby 进程之前杀死其他进程,这就是为什么您的机器看起来没有响应。您可以阅读 OOM 的工作原理,这可能会有所帮助。我会专门查看您的 oom_scores 并看看您在那里发现了什么。
http://www.oracle.com/technetwork/articles/servers-storage-dev/oom-killer-1911807.html
祝你好运
归档时间: |
|
查看次数: |
521 次 |
最近记录: |