我的应用程序正在交换到磁盘,因为它使用的是2.2 GB的内存。我无法弄清楚我的应用程序中是什么导致它成为这样的内存耗尽。
这是一台RHEL5虚拟机,内存为2 GB。
Rails是版本3.1.3。
我的网络服务器在nginx v1.0.10中,使用Phusion Passenger版本3.0.11。
“红宝石”流程在内存占用方面似乎完全脱节。
该应用程序是一个相对简单的产品目录。当内存不足时,服务器每天大约崩溃两次。我也在使用memcached v1.4.4。
Rails缓存在最终无法建立更多内存时导致崩溃。
我不知道采取了哪些步骤来确定我的应用程序占用如此大的空间。
可能是:
1) Some gems being loaded into memory?
2) A faulty or insufficient Passenger setup in my nginx.conf file?
3) Something else?
我非常感谢任何人都可以提供帮助!我必须每两个小时检查一下这个东西。不好玩!
更新:
乘客配置如下:
server {
listen 80;
client_max_body_size 4M;
server_name www.myapp.net myapp.net *.myapp.net;
root /usr/code/mcp5/public; # <--- be sure to point to 'public'!
passenger_enabled on;
passenger_min_instances 5;
rails_env production;
rails_framework_spawner_idle_time 0;
rails_app_spawner_idle_time 0;
}
我还注意到在我的日志记录实用程序中,这个东西很快就会超过20个ruby过程。
答案 0 :(得分:1)
您的乘客配置如何?您可能拥有太多线程来获取可用资源。
感谢您的更新。
虽然我们的服务器拥有的资源比您的多,但我们仍然使用以下指令。
尝试将其设置为10以开始并执行负载测试。这应该至少阻止应用程序杀死您的服务器。然后我会花更多的时间来确定瓶颈在哪里。我们使用Newrelic进行性能监控。这有助于
答案 1 :(得分:1)