ps aux命令的VSZ和RSS项:
VSZ:指的是进程内存空间的大小,并不代表进程真正用到的内存,因为有些空间会仅在页表中挂个名,也就是说只是虚拟存在着,只有真正用到的时候内核才会把虚拟页面和真正的物理页面映射起来。比如,(malloc或mmap的调用),由于程序中并没有用到这些内存,没有物理内存被分配,也就不应算到进程的帐上。
RSS:(resident set size)表示常驻内存的大小,但是由于不同的进程之间会共享内存,所以把所有进程RSS进行累加的方法会重复计算共享内存,得到的结果是偏大的。
Pss: /proc/[1-9]*/smaps 中的 Pss包含了进程的每一个内存映射的统计值,并把共享内存的Rss进行了平均分摊,比如某一块100MB的内存被10个进程共享,那么每个进程就摊到10MB。这样,累加Pss就不会导致共享内存被重复计算了。