Meningkatkan perintah cyberciti.biz untuk menampilkan jawaban yang lebih ringkas:
(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
Contoh keluaran:
COMM PID SWAP
dockerd 662 2736 kB
skypeforlinux 26865 1320 kB
NetworkManager 303 1112 kB
slim 392 1028 kB
redis-server 350 204 kB
Dari sini:
[a] /proc/meminfo - File ini melaporkan statistik tentang penggunaan memori pada sistem. Ini digunakan oleh free untuk melaporkan jumlah memori bebas dan terpakai (baik fisik maupun swap) pada sistem serta memori bersama dan buffer yang digunakan oleh kernel. Anda juga dapat menggunakan alat gratis, vmstat, dan lainnya untuk menemukan informasi yang sama.
[b]/proc/${PID}/smaps, /proc/${PID}/status, dan /proc/${PID}/stat :Gunakan file-file ini untuk menemukan informasi tentang memori, halaman, dan swap yang digunakan oleh setiap proses menggunakan PID-nya.
[c] smem - Perintah ini (skrip python) melaporkan penggunaan memori dengan memori bersama yang dibagi secara proporsional.
Anda juga dapat merujuk Cari tahu apa yang menggunakan swap Anda
#!/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"