乘客和阿帕奇的内存使用情况

乘客和阿帕奇的内存使用情况

在“CentOS 版本 6.2 (最终版)”服务器 (带有 Ruby 1.9.3 和 Rails 3.2) 上,使用的内存比预期的要多。

查看乘客内存统计信息时,我看到几个巨大的 httpd 进程...有什么想法可以让我弄清楚发生了什么并减少内存使用量?

统计数据包含在这里...谢谢!

---------- Apache processes -----------
PID    PPID  VMSize     Private   Name
---------------------------------------
1371   1     202.1 MB   0.1 MB    /usr/sbin/httpd
4573   1371  210.2 MB   5.0 MB    /usr/sbin/httpd
4778   1371  202.5 MB   0.6 MB    /usr/sbin/httpd
4780   1371  217.6 MB   9.4 MB    /usr/sbin/httpd
4781   1371  217.1 MB   9.1 MB    /usr/sbin/httpd
4856   1371  202.4 MB   0.5 MB    /usr/sbin/httpd
4863   1371  204.1 MB   2.1 MB    /usr/sbin/httpd
5027   1371  202.4 MB   0.5 MB    /usr/sbin/httpd
5043   1371  202.4 MB   0.4 MB    /usr/sbin/httpd
5044   1371  205.5 MB   2.7 MB    /usr/sbin/httpd
5072   1371  202.4 MB   0.5 MB    /usr/sbin/httpd
5084   1371  202.4 MB   0.5 MB    /usr/sbin/httpd
32111  1371  1297.0 MB  246.5 MB  /usr/sbin/httpd
32579  1371  1914.3 MB  215.5 MB  /usr/sbin/httpd
### Processes: 14
### Total private dirty RSS: 493.42 MB


-------- Nginx processes --------

### Processes: 0
### Total private dirty RSS: 0.00 MB


----- Passenger processes -----
PID    VMSize    Private  Name
-------------------------------
4180   280.5 MB  24.4 MB  Passenger ApplicationSpawner: /var/www/apps/people/current
4345   309.5 MB  53.4 MB  Rack: /var/www/apps/people/current
4800   300.2 MB  55.2 MB  Rack: /var/www/apps/people/current
4808   297.8 MB  52.5 MB  Rack: /var/www/apps/people/current
4815   297.4 MB  52.4 MB  Rack: /var/www/apps/people/current
4822   302.7 MB  55.6 MB  Rack: /var/www/apps/people/current
22780  209.0 MB  0.0 MB   PassengerWatchdog
22783  991.5 MB  1.3 MB   PassengerHelperAgent
22785  113.4 MB  1.1 MB   Passenger spawn server
22788  144.6 MB  0.0 MB   PassengerLoggingAgent
22911  310.4 MB  64.0 MB  Rack: /var/www/apps/people/current
22939  311.6 MB  53.5 MB  Rack: /var/www/apps/people/current
26175  304.1 MB  55.8 MB  Rack: /var/www/apps/people/current
26182  310.4 MB  44.0 MB  Rack: /var/www/apps/people/current
### Processes: 14
### Total private dirty RSS: 513.24 MB

* 更新 *:我意识到更大的罪魁祸首可能是我们的应用程序,而不是 Rails,但我试图弄清楚在所有情况下发生了什么......所以......这里有几个更具体的问题:

  1. 这两个巨大的 httpd 进程是怎么回事?我预计 Passenger 会出现两个大型 spawner 进程,但为什么 apache 看起来是这个样子?

  2. 假设我需要对 Rails 应用程序进行一些内存使用分析,有哪些工具可以帮助我完成这项工作?我知道很多性能分析、基准测试等工具 - 但是,有什么工具可以帮助我判断内存的使用情况呢?

答案1

这些进程都在运行您的 Rails 应用程序。它们的大小都相对一致,我怀疑如果您包含 Apache/Passenger 配置文件(或至少其中的一部分),我们会看到计数与您配置的子进程数一致。我会首先查看 Rails 应用程序,看看它为什么占用这么多 RAM,然后然后回到 Apache/Passenger。

相关内容