如何查找 Apache 内存利用率?

如何查找 Apache 内存利用率?

我想测量 Apache 服务器的内存利用率。我可以使用 pmap/ps 命令并传递 httpd 的所有进程 ID,然后将其作为总利用率吗?

在大多数博客中,他们认为 ps 命令对示例程序给出了正确的结果,但对 apache 却没有给出正确的结果

在 pmap 中

pmap PID1 PID2....

pmap 似乎提供的信息不仅仅是 RAM 利用率。Unix/Perl 中是否有任何命令可以让我获取有关内存使用的正确信息?

答案1

我的 Python 脚本是

https://raw.github.com/pixelb/scripts/master/scripts/ps_mem.py

只需运行 ps_mem.py,它就会告诉您 httpd 在其分叉的所有进程中使用了多少空间。您无法真正使用 res memory 之类的 ps 输出来总结,因为它所说的进程正在使用的大量内存在进程之间共享。例如,我的一台服务器中的 apache 进程示例是

apache    6799  0.2  0.7 590052 63064 ?        S    12:56   0:07 /usr/sbin/httpd
apache    6802  0.3  0.7 589084 60804 ?        S    12:57   0:08 /usr/sbin/httpd
apache    6803  0.2  0.7 588004 59748 ?        S    12:57   0:05 /usr/sbin/httpd

让人觉得每个进程大约使用 60MB 的 RAM。我打开了 100 个进程,所以有人可能会认为它使用了 600MB 的 RAM。

从脚本的输出来看,实际内存是 365

286.6 MiB +  79.3 MiB = 365.9 MiB   httpd (38)

相关内容