Vylepšení příkazu cyberciti.biz, aby se zobrazila stručnější odpověď:
(echo "COMM PID SWAP"; for file in /proc/*/status ; do awk '/^Pid|VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | grep kB | grep -wv "0 kB" | sort -k 3 -n -r) | column -t
Příklad výstupu:
COMM PID SWAP
dockerd 662 2736 kB
skypeforlinux 26865 1320 kB
NetworkManager 303 1112 kB
slim 392 1028 kB
redis-server 350 204 kB
Odtud:
[a] /proc/meminfo - Tento soubor hlásí statistiky o využití paměti v systému. Free jej používá k hlášení množství volné a použité paměti (fyzické i odkládací) v systému a také sdílené paměti a vyrovnávacích pamětí používaných jádrem. Ke zjištění stejných informací můžete také použít bezplatné nástroje vmstat a další nástroje.
[b]/proc/${PID}/smaps, /proc/${PID}/status a /proc/${PID}/stat :Tyto soubory použijte k vyhledání informací o paměti, stránkách a swapu používaném každým procesem pomocí jeho PID.
[c] smem - Tento příkaz (python script) hlásí využití paměti se sdílenou pamětí rozdělenou proporcionálně.
Můžete se také podívat na Zjistěte, co váš swap používá
#!/bin/bash
# Get current swap usage for all running processes
# Erik Ljungstrom 27/05/2011
SUM=0
OVERALL=0
for DIR in `find /proc/ -maxdepth 1 -type d | egrep "^/proc/[0-9]"` ; do
PID=`echo $DIR | cut -d / -f 3`
PROGNAME=`ps -p $PID -o comm --no-headers`
for SWAP in `grep Swap $DIR/smaps 2>/dev/null| awk '{ print $2 }'`
do
let SUM=$SUM+$SWAP
done
echo "PID=$PID - Swap used: $SUM - ($PROGNAME )"
let OVERALL=$OVERALL+$SUM
SUM=0
done
echo "Overall swap used: $OVERALL"