Newsgroup: it.comp.os.linux.sys
Titolo: Scoprire quali processi usano la swap

Come posso fare?
-- 
g4b0, linux user n. 369000
http://brosulo.net

 Come posso fare?
top ?
http://oldsite.to.infn.it/groups/group4/mirror/linux/AppuntiLinux/AL-2.6.26.html
-- 
Il problema del capitalismo è che il padrone è troppo ingordo..
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 top ?
Si, ma come identifico chi usa la swap?
top - 12:28:19 up 223 days, 17:43,  1 user,  load average: 0.02, 0.25, 0.44
Tasks: 161 total,   2 running, 158 sleeping,   0 stopped,   1 zombie
Cpu(s):  0.7%us,  0.2%sy,  0.0%ni, 98.7%id,  0.5%wa,  0.0%hi,  0.0%si, 
0.0%st
Mem:    493916k total,   413444k used,    80472k free,    30684k buffers
Swap:  1952692k total,  1700580k used,   252112k free,   141996k cached
   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND 
 
 
 
13108 mysql     40   0  135m  41m 3204 S    0  8.5  90:15.22 mysqld 
 
 
 
  7264 root      40   0  325m  15m  824 S    0  3.2   2:01.62 saslauthd 
 
 
 
  7267 root      40   0  325m  15m  824 S    0  3.2   2:00.72 saslauthd 
 
 
 
  7266 root      40   0  324m  15m  824 S    0  3.1   2:00.33 saslauthd 
 
 
 
  7265 root      40   0  320m  14m  828 S    1  3.1   1:59.00 saslauthd 
 
 
 
29430 www-data  40   0 35524  14m 4948 S    0  3.0   0:00.63 apache2 
 
 
 
  7268 root      40   0  323m  14m  824 S    0  3.0   1:59.79 saslauthd 
 
 
 
29168 www-data  40   0 35388  14m 5072 S    0  3.0   0:00.94 apache2 
 
 
 
24210 bind      40   0 63792 7972 1600 S    0  1.6   0:28.00
named


   7264 root      40   0  325m  15m  824 S    0  3.2   2:01.62 saslauthd 
user root, processo saslauthd, memoria virtuale utilizzata 325mb
.cut..
Oppure vuoi sapere CHI sta utilizzando in quel determinato momento, ad
es., mysql e quanta swap sta utilizzando ?


 es., mysql e quanta swap sta utilizzando ?
Esatto. Ho il sistema rallentato, e vorrei capire dove sta il collo di 
bottiglia.
Grazie per l'interessamento.


 user mysql, processo mysqld, memoria virtuale utilizzata 135mb
Uhm, no.
Mem:   3926520k total,  3870772k used,    55748k free,    48192k buffers
Swap:  2731008k total,    39268k used,  2691740k free,   776388k cached
   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND 
 
16911 poggir    20   0 2202m 1.6g 1.6g S   61 43.5   1891:02 VirtualBox 
 
Se fosse come dici tu, il mio virtualbox sta usando due giga sui 38 mega
di swap utilizzati.
quel VIRT è la somma di tutti i tipi di memoria che sta usando quel
processo: dati, programmi, cache, buffers, sia che siano in memoria
fisica che in memoria virtuale.
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net


Eh, mi sembrava... Ma si puó stabilire quale processo sta usando la swap?


 
Sì.
Il kernel. ;-)
Lo scheduler e i suoi accessori, in realtà.


 Lo scheduler e i suoi accessori, in realtà.
Pongo il dubbio perché al momento non ho modo di provare.. Leggendo qui 
http://oldsite.to.infn.it/groups/group4/mirror/linux/AppuntiLinux/AL-2.6.26.html
tra le caratteristiche del tool fuser c'è l'opzione "-m" che riporto pari
pari:
Utilizzando questa opzione può essere indicato solo un nome di file, il
quale può essere un file di dispositivo, riferito a un'unità di
memorizzazione montata nel filesystem, o una directory che costituisce il
punto di innesto della stessa. Quello che si ottiene è l'indicazione di
tutti i processi che accedono a quella unità di memorizzazione. 
E' un modo affidabile per vedere CHI sta accedendo all'area o al file di
swap ?


 es., mysql e quanta swap sta utilizzando ?
Spero che tu non stia dicendo che la virtual e la swap coincidono, perchè 
altrimenti credo che sia una cazzata al livello di quelle di MaxAdamo.

 altrimenti credo che sia una cazzata al livello di quelle di MaxAdamo.
:-) ..No.. Anzi.. Faccio ammenda e mi scuso, però ho riletto dato una
riletta al link che ho postato e.. o non sono capace io di interpretare
correttamente quello che c'è scritto, oppure hanno scritto una cosa non
vera..


 > altrimenti credo che sia una cazzata al livello di quelle di MaxAdamo.
:-) ..No.. Anzi.. Faccio ammenda e mi scuso, però ho dato una
riletta al link che ho postato e; o non sono capace io di interpretare
correttamente quello che c'è scritto, oppure hanno scritto una cosa non
vera..
Vè che così è meglio.. :-)


 
Io sono sicurissimo di poter rispondere "forse". ;-)
Nel senso: non ho idea se da user space funzioni il controllo sullo
swap, per prima cosa.
Potendo funzionare anche con file di dispositivo, non dovrebbe avere
remore a tenere sotto controllo lo swap.
Se anche funzionasse, continuo ad essere convinto che il processo che
usa lo swap è il kernel e che la cosa sia del tutto trasparente per il
programma "vittima" di swap.


 
Il problema è semantico.
La memoria virtuale non è lo swap.


 programma "vittima" di swap.
+1
-- 
 ************** (.)_(.)  **************
 Un amico è uno che sa tutto di te e,
 nonostante questo, gli piaci
(E. Hobbard)
http://www.youtube.com/user/Nameci65
 

 swap ?
No.
Nessun processo accede direttamente al file o alla partizione (e quindi 
al file di dispositivo) della swap. Ci accede solo il kernel.
Per capirci: non troverai mai la swap nel lsof di qualsiasi processo.
L'uso della swap e` totalmente trasparente, e non ha senso chiedere 
"quale processo la sta usando", perche` probabilmente tutti i processi la 
stanno usando, chi piu`, chi meno.
Per esempio potrebbe essere stata swappata una parte della libc che 
nessun processo usa.
Naturalmente e` piu` probabile che un processo che occupa piu` RAM 
(veramente, non solo allocata) abbia pezzi swappati, ma comunque per il 
kernel ogni singolo chunk (da 4 KB, se non l'hanno cambiato) di RAM 
fisica e` swappabile, non importa a chi appartenga.
Occhio a non confondere la memoria virtuale di un processo con quella 
realmente allocata. Se fai la somma, probabilmente il totale della 
memoria virtuale supera di una trentina di volte la RAM+swap disponibile.
Come il kernel gestisce la RAM dei processi in Linux e` per nulla banale.
Bye.

 Bye.
Chiarissimo... Stampo e archivio tra i miei appunti :-)
