Virtualizarea Linux care utilizează un swap

Obținerea de informații despre care utilizează Swap.

Există situații în care aveți nevoie pentru a vedea cine folosește Swap și în ce măsură. Din păcate, nenashlos program și informații finit aveți nevoie pentru a obține. Pentru salvarea vine ca întotdeauna bash.
Există câteva fapte cunoscute.
  • în / proc informații disponibile cu privire la toate procesele care rulează;
  • dacă te uiți în / proc / $ BIP / starea puteți vedea utilizarea memoriei procesului cu PID-ul specificat;
  • pentru fiecare proces, puteți vedea linia VmSwap, cantitatea de date plasate în swap.
  • Prin urmare, pentru a obține informațiile necesare pentru a calcula toate intrările swap pentru toate procesele.
Ceea ce este nevoie pentru a obține ceea ce doresc?
1. Este necesar pentru a obține toate procesele de directoarele din / proc
# Găsiți / proc / -maxdepth 1 tip d | grep -R "[0-9] +"
2. Este necesar să se calculeze utilizarea swap-urilor într-un singur proces
# Swap = $ (grep VmSwap $ dir / status 2> / dev / null | awk '')
3. Și pentru a obține numele de proces
# Ps h -p $ pid o- comm Acum traversăm echipa noastră a produs în scenariu
# Vi bin / getswap.sh
#! / Bin / sh
# Ia-utilizare swap de curent pentru toate procesele care rulează
pentru dir în $ (find / proc / -maxdepth 1 tip d | grep -R "[0-9] +"); face
pid = $ (echo $ dir | cut -d / -f3)
cmd = $ (ps h o- comm -p pid $)
de swap = $ (grep VmSwap $ dir / status 2> / dev / null | awk '')
în cazul în care [. $ Swap pe -z] [$ Swap -ne 0]; atunci
echo "BIP: BIP comanda $: $ cmd - SwapUsed: $ swap pe KB"
Fi
făcut | sortare -nk5 | -t coloană

Vă mulțumim pentru scenariul. Am oferi ușor îmbunătățită:

în cazul în care [. $ Swap pe -z] [$ Swap -ne 0]; atunci

pentru că Nu ne interesează în procesele care nu utilizează swap.