我有一个使用eventmachine的Ruby应用程序,并启动16个进程,每个进程管理1000个连接。
最初每个进程只使用大约150MB,但是在一些运行时之后它们会消耗越来越多的500MB并且我的内存和交换耗尽。
开放连接的数量(由EM.connection_count
表示)是正常的(一直大约为1000),因此不应该再引用旧连接了。
不幸的是,memprof只能在Ruby 1.8下运行,所以在我的情况下这不是一个选项。
我不想为我的应用程序构建ITAPPMONROBOT,因此我可以让它保持24/7/365全天候运行。如何在此处找到内存泄漏或如何帮助GC?
答案 0 :(得分:0)
1.9.2的Kernel#方法中存在已知的内存泄漏,这会影响大多数EM应用程序。请参阅http://groups.google.com/group/eventmachine/browse_thread/thread/fa56ff02440a624d和http://redmine.ruby-lang.org/issues/show/3466#note-3