Los siguientes son el uso de memoria de mysql
y apache
respectivamente en mi servidor. Según la salida de pmap
say, mysql
está usando aproximadamente 379M y apache
está usando 277M.
[root@server ~]# pmap 10436 | grep total
total 379564K
[root@server ~]# pmap 10515 | grep total
total 277588K
Comparando esto con la salida de top
, veo que los valores son casi coincidentes.
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=....
Ahora estos valores definitivamente no son el uso de memoria actual de esos dos procesos, ya que si lo hubiera hecho, habría excedido los 512M ram
en mi sistema y entiendo el hecho de que estos son el tamaño de las páginas asignadas a estos dos procesos y no realmente El tamaño de la memoria utilizada activamente por ellos. Ahora, cuando usamos pmap -x
, veo un color adicional Dirty
que muestra mucho menos uso de memoria para el proceso. Como se ve en el ejemplo que se muestra a continuación, el Dirty
color muestra 15 millones en comparación con 379 millones en el primer color. Mi pregunta es: ¿el valor bajo coloumn Dirty
es la cantidad 'real' de memoria utilizada activamente por ese proceso? Si no es así, ¿cómo podemos descubrir el uso real de la memoria de un proceso? No ps
y top
por las mismas razones anteriores. ¿Tenemos algo debajo/proc
eso le dará esta información?
[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 ~]#