在Solaris上,我怎样才能找出给定进程占用多less交换空间? 或者甚至更好,我怎样才能列出所有正在运行的进程按交换空间的使用sorting?
我特别要求Solaris。 我没有top命令可用, prstat和swap都不能提供给定进程使用多less交换空间的信息。
你可以使用这个命令:
pmap -S <pid>
查看所有内存统计信息,包括交换使用情况。
用小魔法你可以把它包装在一个bash循环中:
cd /proc for i in *; do SWAP=`pmap -S $i | grep ^total | awk '{ print $3; }'` [ "xx$SWAP" != "xx" ] && echo "$SWAP bytes $i" done | sort -n
输出以字节为单位,格式为:
<number> bytes <pid>
我不确定$ 3是否与您想要的列匹配,因为这是“Kbytes”而不是“Swap”列。
在标题中,它是第三个,但不是grep total (因为“总Kb”中的空白):
Address Kbytes Swap Mode Mapped File total Kb 240576 235028`