获得正确的内存使用情况比人们想象的要棘手。我能找到的最好方法是:
echo 0 $(awk '/TYPE/ {print "+", $2}' /proc/`pidof PROCESS`/smaps) | bc其中“ PROCESS”是要检查的过程的名称,而“ TYPE”是以下之一:
Rss
:常驻内存使用情况,该进程使用的所有内存,包括该进程与其他进程共享的所有内存。它不包括掉期;Shared
:该进程与其他进程共享的内存;Private
:此过程使用的私有内存,您可以在此处查找内存泄漏;Swap
:交换进程使用的内存;Pss
:比例设置大小,良好的整体内存指示器。它是为共享而调整的Rss:如果某个进程在1个私有进程中具有1MiB,在其他10个进程之间共享了20MiB,则Pss为1 + 20/10 = 3MiB
其他有效值是 Size
(即虚拟大小,几乎没有意义)和 Referenced
(当前标记为引用或访问的内存量)。
您可以使用
watch或其他bash-script-fu来监视要监视的进程的那些值。
有关更多信息
smaps:http
:
//www.kernel.org/doc/documentation/filesystems/proc.txt。



