GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa menampilkan penggunaan memori dari setiap proses jika saya melakukan 'ps -ef'?

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


Linux
  1. Bagaimana saya bisa mengetahui jalur absolut dari proses yang sedang berjalan?

  2. Bagaimana saya bisa mengatur afinitas prosesor dari suatu proses di Linux?

  3. Bagaimana cara mengurangi penggunaan memori ClamAV?

  1. Cara Memeriksa Penggunaan Memori Proses dengan Perintah pmap Linux

  2. Bagaimana saya bisa mendapatkan waktu jam dinding dari proses yang sedang berjalan?

  3. Penggunaan memori puncak dari suatu proses

  1. Bagaimana Cara Menampilkan Hasil `top` Diurutkan Berdasarkan Penggunaan Memori Secara Real Time?

  2. Bagaimana saya bisa mengukur penggunaan memori sebenarnya dari suatu aplikasi atau proses?

  3. Bagaimana cara menghitung penggunaan CPU dari suatu proses oleh PID di Linux dari C?