Los siguientes son el uso de memoria de mysqly apacherespectivamente en mi servidor. Según la salida de pmapsay, mysqlestá usando aproximadamente 379M y apacheestá 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 ramen 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 Dirtyque muestra mucho menos uso de memoria para el proceso. Como se ve en el ejemplo que se muestra a continuación, el Dirtycolor muestra 15 millones en comparación con 379 millones en el primer color. Mi pregunta es: ¿el valor bajo coloumn Dirtyes 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 psy toppor 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 ~]#