linux有几个命令可以显示内存相关内容
ps命令中的vsz和rss
vsz是进程占用的虚拟内存总和(比如malloc出100MB内存但没有使用,此时操作系统并没有实际分配物理内存给对应进程,这个时候vsz中会包含这块内存大小但是rss中不会包含)
rss是进程实际使用的物理内存大小。但并不表明这些物理内存就是这一个进程独占的。比如进程使用到了一个动态库,另一个进程也使用了这个动态库,此时这两个进程的rss值都会包含这个动态库大小,但是这个动态库在物理内存上实际只有一份。
/etc/proc/meminfo 中会显示整个操作系统使用的内存大小,其中memfree去掉了进程使用内存和cache以及buffer,cache和buffer是系统使用的,这部分内存可以复用。
pmap命令可以打印出一个进程rss的详细内容,包括有多少共享内存,有多少内存在数据段,多少在栈上,多少在堆上。使用方法pmap -d PID
/proc/PID下的smaps,stat等信息里也有内存信息。