¿Por qué los valores% MEM en la parte superior no se suman a la memoria total utilizada?

18

Actualmente estoy depurando problemas de rendimiento con mi VPS y por eso estoy tratando de entender cuál de los procesos consume más memoria. Leyendo arriba, esto es lo que obtengo:

Mem:    366544k total,   321396k used,    45148k free,      380k buffers
Swap:  1048572k total,   592388k used,   456184k free,     7756k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                  
12339 ruby      20   0  844m  74m 2440 S    0 20.8   0:24.84 ruby                                                                                     
12363 ruby      20   0  844m  73m 1576 S    0 20.6   0:00.26 ruby                                                                                     
21117 ruby      20   0  171m  33m 1792 S    0  9.3   2:03.98 ruby                                                                                     
11846 ruby      20   0  858m  21m 1820 S    0  6.0   0:09.15 ruby                                                                                     
21277 ruby      20   0  219m  11m 1648 S    0  3.2   2:00.98 ruby                                                                                     
  792 root      20   0  266m  10m 1024 S    0  3.0   1:40.06 ruby                                                                                     
  532 mysql     20   0  234m 4760 1040 S    0  1.3   0:41.58 mysqld                                                                                   
  793 root      20   0  250m 4616  984 S    0  1.3   1:20.55 ruby                                                                                     
  586 root      20   0  156m 4532  848 S    0  1.2   6:17.10 god                                                                                      
12315 ruby      20   0  175m 2412 1900 S    0  0.7   0:07.55 ruby                                                                                     
 3844 root      20   0 44036 2132 1028 S    0  0.6   1:08.22 ruby                                                                                     
10939 ruby      20   0  179m 1884 1724 S    0  0.5   0:08.33 ruby                                                                                     
 4660 ruby      20   0  229m 1592 1440 S    0  0.4   2:55.46 ruby                                                                                     
 3879 nobody    20   0 37428  964  520 S    0  0.3   0:01.99 nginx 

Como puede ver, mi memoria se usa aproximadamente en un 90% (que es mi problema), pero cuando suma los valores de% MEM, solo se acerca al 50-60%. Lo mismo, RES no suma hasta ~ 350mb. ¿Por qué? ¿Estoy malinterpretando su significado?

Gracias

ben
fuente
Creo que la parte superior ajusta el número de filas que se muestran con el tamaño de visualización, por lo que todos los procesos pueden no ser visibles.
Samik

Respuestas:

6

Estoy tratando de entender cuál de los procesos consume más memoria.

Eso es simple: ¡ rubí !

cuando sumas los valores de% MEM, solo va aproximadamente al 50-60%

En realidad, sumar las columnas como se muestra da 69.2% .

  • Como ha señalado Samik, eso ciertamente no incluye todos los procesos en su sistema: intente pegar la salida de top -b -n 1para obtener la salida completa en un archivo y compartirla con nosotros para que podamos ayudarlo mejor.

  • Además, el kernel ocupa cierta cantidad de memoria, y algunos tipos de VPS (por ejemplo, Xen, KVM) reservarán algo de memoria adicional durante el arranque para su uso interno. Pastebin la salida de dmesgtambién.

Para mejores métricas y facilidad de uso, le recomiendo que use htop enInstalar htop lugar de top, con la opción "Ocultar hilos de usuario" habilitada:

ingrese la descripción de la imagen aquí

Mira también memtop:

ingrese la descripción de la imagen aquí

ish
fuente
Aquí está la salida superior completa: paste.ubuntu.com/1055673 y dmesg: paste.ubuntu.com/1055674 ¡ Usar htop me da una salida diferente! Veo tres de los procesos del 22.4% MEM, de hecho, muchos de los procesos están duplicados (mysqld también, muchas veces). En cualquier caso, me gusta la salida, mucho más limpia ... Memtop también es genial, puedo entender mejor cuál de mis aplicaciones de rubí está consumiendo más memoria;)
ben
0

El topcomando Linux muestra toda la rammemoria utilizada, no solo para usted, sino también para el sistema. Linux cachesalgunas áreas de su disco duro para acelerar su computadora. se recomienda usar cualquier otro monitor de memoria.

Alberto Garea
fuente