Di seguito sono riportati l'utilizzo della memoria mysqle apacherispettivamente sul mio server. Come da output di pmapdire, mysqlsta usando circa 379M e apachesta usando 277M.
[root@server ~]# pmap 10436 | grep total
total 379564K
[root@server ~]# pmap 10515 | grep total
total 277588K
Confrontando questo con l'output di top, vedo che i valori sono quasi corrispondenti.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10515 apache 20 0 271m 32m 3132 S 0.0 6.6 0:00.73 /usr/sbin/httpd
10436 mysql 20 0 370m 21m 6188 S 0.0 4.3 0:06.07 /usr/libexec/mysqld --basedir=....
Ora questi valori sicuramente non sono l'attuale utilizzo della memoria di quei due processi, poiché se così fosse avrebbe superato i 512M ramsul mio sistema e capisco il fatto che queste sono le dimensioni delle pagine assegnate a questi due processi e non proprio la dimensione della memoria utilizzata attivamente da loro. Ora, quando usiamo pmap -x, vedo una colonna in più Dirtyche mostra molto meno utilizzo della memoria per il processo. Come mostrato nell'esempio seguente, la Dirtycolonna mostra 15M rispetto a 379M nella prima colonna. La mia domanda è: il valore sotto colonna Dirtyè la quantità "reale" di memoria utilizzata attivamente da quel processo? In caso contrario, come possiamo scoprire l'utilizzo della memoria reale di un processo? Non pse topper le stesse ragioni sopra. Abbiamo qualcosa sotto/proc che darà queste informazioni?
[root@server ~]# pmap -x 10436 | grep total
total kB 379564 21528 15340
[root@server ~]#
[root@server ~]# free -m
total used free shared buffers cached
Mem: 489 447 41 0 52 214
-/+ buffers/cache: 180 308
Swap: 1023 0 1023
[root@server ~]#