Как в Solaris узнать, сколько места подкачки занимает данный процесс? Или, что еще лучше, как я могу перечислить все запущенные процессы, отсортированные по использованию пространства подкачки?
Я прошу именно это для Соляриса. У меня нет top
команда доступна и ни prstat
ни swap
похоже, может предоставить информацию о том, сколько пространства подкачки использует данный процесс.
Вы можете использовать команду:
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 доллара нужному столбцу, потому что это столбец «Кбайты», а не столбец «Обмен».
В заголовке он 3-й, но не в grep total
(из-за пробела в "всего Кб"):
Address Kbytes Swap Mode Mapped File
total Kb 240576 235028`
для i в *; do pmap -S $ i 2> / dev / null | nawk -v PID = $ i '$ 1 == "total" && $ 4> 0 {print PID, "=>", $ 4, $ 2}'; сделано | sort -rn -k 3,3