我的 Apache 服务器时不时会崩溃,并出现错误,提示已达到 MaxClients 数。在我的研究中,我得到的印象是内存可能不足(刚刚检查过,MaxClients 设置为 1500,但 Apache 进程数在 40 到 100 之间徘徊)
无论如何,这只是一点背景知识。
当我运行时,top
我被告知我总共有大约 15GB,使用了 14GB,而空闲空间目前似乎徘徊在 500MB - 1GB 之间(尽管大约一小时前它大约有 3-4 GB 是免费的)
但是我也运行了,ps_mem.py
结果显示只使用了 3-4 GB!
为什么会有差异?哪一个才是正确的?
答案1
ps_mem.py
在我看来更精确一点,因为评估共享内存的数量,纠正顶部有错误的地方。
top 读取/proc/<PID>/statm
,而 ps_mem.py 读取更详细的信息,/proc/<PID>/smaps
并更精确地评估多处理守护进程的总使用情况。
有关详细信息,我建议阅读通过ps_mem.py
代码