Jawaban @ user26528 tidak cukup menghitung memori dengan benar - Anda memerlukan jumlah pemetaan dalam smaps, bukan hanya yang teratas. Skrip ini harus melakukannya:
#!/bin/bash
for pid in $(ps -ef | awk '{print $2}'); do
if [ -f /proc/$pid/smaps ]; then
echo "* Mem usage for PID $pid"
rss=$(awk 'BEGIN {i=0} /^Rss/ {i = i + $2} END {print i}' /proc/$pid/smaps)
pss=$(awk 'BEGIN {i=0} /^Pss/ {i = i + $2 + 0.5} END {print i}' /proc/$pid/smaps)
sc=$(awk 'BEGIN {i=0} /^Shared_Clean/ {i = i + $2} END {print i}' /proc/$pid/smaps)
sd=$(awk 'BEGIN {i=0} /^Shared_Dirty/ {i = i + $2} END {print i}' /proc/$pid/smaps)
pc=$(awk 'BEGIN {i=0} /^Private_Clean/ {i = i + $2} END {print i}' /proc/$pid/smaps)
pd=$(awk 'BEGIN {i=0} /^Private_Dirty/ {i = i + $2} END {print i}' /proc/$pid/smaps)
echo "-- Rss: $rss kB"
echo "-- Pss: $pss kB"
echo "Shared Clean $sc kB"
echo "Shared Dirty $sd kB"
echo "Private $(($pd + $pc)) kB"
fi
done
ps ef -o command,vsize,rss,%mem,size
Saya tidak dapat menemukan opsi untuk memori bersama, tetapi saya menemukan opsi untuk% dari total memori fisik dan jumlah ruang swap yang diperlukan untuk menukar proses. Ini dan banyak lagi didokumentasikan di halaman manual untuk ps.
Buat daftar proses berdasarkan penggunaan memori
ps -e -orss=,args=| urutkan -b -k1,1n
Bagaimana saya bisa mengetahui jalur absolut dari proses yang sedang berjalan?
Perintah unzip Linux:Opsi untuk memaksa menimpa?