GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu zobrazit využití paměti každého procesu, když udělám 'ps -ef'?

Odpověď @user26528 nevypočítává paměť úplně správně - potřebujete součet mapování ve smapách, ne jen ten horní. Tento skript by to měl udělat:

#!/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

Nemohl jsem najít možnost pro sdílenou paměť, ale našel jsem možnosti pro % celkové fyzické paměti a množství odkládacího prostoru, který by byl potřeba k odložení procesu. Toto a mnohem více je zdokumentováno v manuálové stránce pro ps.


Seznam procesů podle využití paměti

ps -e -orss=,args=| řazení -b -k1,1n


Linux
  1. Jak zkontrolovat využití paměti procesu pomocí příkazu Linux pmap

  2. Jak zobrazit „top“ výsledky seřazené podle využití paměti v reálném čase?

  3. Jak mohu měřit skutečné využití paměti aplikací nebo procesem?

  1. Jak vypočítat využití CPU procesu pomocí PID v Linuxu z C?

  2. Jak mohu v prostředí Linux zpracovat každý řádek víceřádkového řetězce?

  3. Jak mohu přidat řetězec na začátek každého řádku v souboru?

  1. Jak sledovat využití paměti vyhrazené jádru?

  2. Jak mohu nastavit afinitu procesoru k procesu v systému Linux?

  3. Jak mohu pozorovat šířku pásma paměti?