如果我的想法是正确的,那么
30193 ramon 16 0 170M 119M 3628 S 0.0 11.6 0:08.47 Rack: /var/www/salcedoauctions/current
在 htop 中意味着有一个 salcedoauctions 应用程序生成,然后为什么生成的怪物数量比我指定的多得多?
这是我的httpd配置文件:
....
PassengerMaxPoolSize 4
PassengerMaxInstancesPerApp 2
....
这是半成品顶部:
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
30193 ramon 16 0 170M 119M 3628 S 0.0 11.6 0:08.47 Rack: /var/www/salcedoauctions/current
30197 ramon 18 0 170M 119M 3628 S 0.0 11.6 0:02.08 Rack: /var/www/salcedoauctions/current
30198 ramon 18 0 170M 119M 3628 S 0.0 11.6 0:01.96 Rack: /var/www/salcedoauctions/current
30199 ramon 18 0 170M 119M 3628 S 0.0 11.6 0:01.96 Rack: /var/www/salcedoauctions/current
30067 ramon 15 0 167M 117M 3648 S 0.0 11.5 0:08.77 Rack: /var/www/salcedoauctions/current
30202 ramon 16 0 167M 117M 3648 S 0.0 11.5 0:04.55 Rack: /var/www/salcedoauctions/current
30203 ramon 16 0 167M 117M 3648 S 0.0 11.5 0:03.43 Rack: /var/www/salcedoauctions/current
30204 ramon 16 0 167M 117M 3648 S 0.0 11.5 0:03.32 Rack: /var/www/salcedoauctions/current
28454 ramon 16 0 73764 51732 2520 S 0.0 4.9 0:00.66 Rack: /var/www/unstilted/current
.....
一些说明:
- 是的,我已经重新启动了 apache,以便它可以重新加载配置(事实上,由于服务器内存不足,我重新启动了几次)
- CentOS 5.5
- Ruby 企业版 1.8.7
- Rails 3.0.1
乘客 3.0.0
更新 #1
passenger-status
不过,执行显示的数字与我预期的一致。我想我理解错了。我之所以问这个问题,是因为我的 1GB 内存快用完了,有时服务器会停止运行。似乎这些进程占用了 RAM。- 更新#2:我在#rubyonrails 中询问了一下,他们问我是否有任何应用程序正在分叉任何进程。这两个应用程序都没有 fork 任何东西,但我确实使用了蜻蜓来处理我的图片和附件。但是,我不知道如何确定这是否是导致问题的原因。
- 更新 #3 (2011 年 10 月 14 日):我升级到了
Ruby 1.9.2
、、、;但问题依然存在。它不再是 Dragonfly,因为新版本不再使用Rails 3.1.x
。它使用命令行调用来转换图像。dragonfly 0.9.3
ImageMagick 6.7
rmagick
答案1
为了追踪这些问题,passenger-status -v
在服务器上运行将很好地概述实际活动的内容。同样,passenger-memory-status
将为您提供内存使用情况的良好概述。
关于版本,请考虑升级到 Passenger > 3.0.7 - 在早期 3.0 版本中,我遇到了与 rails/dragonfly 和内存泄漏类似的问题。ImageMagick 6.6.0 和 rmagick 2.13.1 在生产中已经运行良好一段时间了。