Solaris

Solaris:如何列出每個程序的交換空間?

  • April 17, 2020

在 Solaris 上,如何找出給定程序佔用了多少交換空間?或者更好的是,如何列出所有按交換空間使用情況排序的正在執行的程序?

我特別要求 Solaris。我沒有top可用的命令,prstat而且swap似乎也無法提供有關給定程序正在使用多少交換空間的資訊。

您可以使用以下命令:

pmap -S <pid>

查看所有記憶體統計資訊,包括交換使用情況。

使用一點 shell 魔法,您可以將其包裝在 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(因為“total Kb”中的空白):

Address  Kbytes    Swap Mode Mapped File

total Kb  240576  235028`

引用自:https://serverfault.com/questions/664647