这个问题在这里详细介绍。
您如何衡量Linux中应用程序或进程的内存使用情况?
从了解Linux上的内存使用的博客文章中可以看出,ps
这不是用于此目的的准确工具。
为什么
ps
是“错”根据您的看法,它
ps
不会报告进程的实际内存使用情况。它的真正作用是显示如果每个进程是唯一运行的进程,则每个进程将占用多少实际内存。当然,一台典型的Linux机器在任何给定的时间都有几十个进程在运行,这意味着报告的VSZ和RSS编号ps
几乎肯定是错误的。
ps
甚至都没有显示-它显示了虚拟内存和常驻内存的数量,其中virtual是该进程理论上可以使用的最大内存量,它是唯一的进程(从未如此),使用了分配给它的每个页面(从未发生过)并且没有映射或取消映射任何页面(不太可能)。而常驻表示当前有多少虚拟内存映射到物理上。virt > usage > res
但是,通常在64位系统上virt ~= res*10
,范围非常广泛。