我知道 VSZ inps
是为应用程序分配的总地址空间,有时别名为 vsize (在ps
linux 的手册页中提到),但是 中 VSIZE 的定义是什么top
? iPhone 的顶部输出与 Linux 上的顶部输出不同:
PID COMMAND %CPU TIME #TH #PRTS #MREGS RPRVT RSHRD RSIZE VSIZE
1875 emma 0.0% 0:30.83 7 139 932 17868K 5328K 29M 181M
root# ps -eo pid,rss,vsz|grep 1875
1875 29324 441324
答案1
Linux 内存系统充满了许多内存优化实用程序和内存共享的例程,使得内存如何共享和消耗的想法成为一种麻烦的方法。 ps 和其他 ps 相关命令的输出都根据数据来处理其输出在文件系统下/proc
。特别是ps
,RSS(驻留内存大小)和VSIZE(虚拟内存大小)都很重要,但是VSIZE并不能显示内存的准确使用情况,VSIZE和rss之间的区别是初始化期间实际打算分配给程序的内存大小但可能还没有被引用。就像程序可能有很多链接的库但它们还没有加载,因为它们在实际的程序运行时还没有被引用。 RSS 给出了程序实际使用的总内存,但可能无法给出内存消耗的真实情况,因为分配的大部分内存可能与同一进程的其他实例或其他进程共享。往下看/proc/<processid>/maps
可能会粗略地了解内存的使用情况,但有时它们可能会产生误导。从命令行使用pmap -x <pid>
,对于查看传播很有用。
通常更好的实用程序是free
和vmstat
。free
将为您提供当前总体内存消耗详细信息,并且 vmstat 可用于查看更新频率。