Posting ini menunjukkan cara memeriksa penggunaan swap dari setiap proses, menjawab “Bagaimana saya bisa tahu proses apa yang akan menghabiskan ruang swap terbesar?”
Untuk semua kernel
Penggunaan swap ditampilkan sebagai “Swap ” kolom di /proc/[PID]/smaps . Ini menunjukkan ukuran memori yang ditukar dari setiap rentang memori, sehingga jumlah dari semua nilai ini menunjukkan total penggunaan swap dari proses.
Misalnya, skrip sederhana di bawah ini menghitung total penggunaan swap dari proses yang PID =1027:
# echo $((`grep Swap /proc/1027/smaps | awk '{ print $2; }' | tr '\n' '+'`0))
Untuk UEK2(2.6.39) atau kernel yang lebih baru
Lebih mudah untuk memeriksa penggunaan swap dari proses tertentu, cukup centang “VmSwap ” kolom di /proc/[PID]/status . Ini menunjukkan penggunaan total ruang swap sebagai satu nilai. Kolom ini tidak ada di /proc/[PID]/status dengan kernel <2.6.39. Misalnya, untuk mengurutkan proses dengan penggunaan swap dari yang lebih besar, jalankan skrip di bawah ini:
# for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | more
Nilai yang ditampilkan/dihitung dalam posting ini tidak menunjukkan ukuran akurat dari ruang swap yang digunakan tetapi hanya menunjukkan perkiraan kasar. Beberapa (seperti perpustakaan bersama) dapat dihitung ganda, dan yang lainnya (seperti cache swap) tidak benar-benar ditukar.