top
我可以从命令中查看交换的总大小、已用大小、可用大小等。
但我无法弄清楚哪个进程使用了交换空间,是否可以按进程找出交换内存?
我运行的是 CentOS 6.3。
答案1
你可以使用附注和一些快速的awk数学来获得答案。
您可以使用的命令是这样的...
$ ps -eo rss,vsz,pid,cmd | awk '{print $2-$1,$0}' | sort -nr | head
输出的第一列应该是交换使用情况。
RSS / 驻留集大小
驻留集大小,任务已使用的非交换物理内存(千字节)。 (别名 rssize、rsz)。
vsz / 虚拟内存大小
虚拟内存大小,以 KiB(1024 字节单位)为单位的进程。目前不包括设备映射;这可能会发生变化。
awk 数学
如果 rss(第 1 列)是非交换内存,而 vsz(第 2 列)是物理内存,那么..
swap = vsz - rss