乘客和apache内存使用情况

在“CentOS 6.2(Final)”服务器(使用Ruby 1.9.3和Rails 3.2),并使用比预期更多的内存。

查看乘客内存统计信息我看到了几个巨大的httpd进程…有关如何找出发生了什么并减less内存使用情况的任何想法?

统计包括在这里…谢谢!

---------- 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应用程序进行一些内存使用情况分析,有哪些工具可以帮助解决这个问题? 我知道很多性能分析,基准testing等工具 – 但是,有什么可以帮助分辨内存的使用?

这些进程都运行你的Rails应用程序。 它们的大小都比较一致,我怀疑如果你包含了你的Apache / Passengerconfiguration文件(或者至less是其中的一部分),我们会看到数量与你configuration的subprocess的数量一致。 我会首先看看Rails应用程序,看看为什么要使用这么多的RAM, 然后回到Apache / Passenger。