¿Cómo saber qué programa está usando demasiada memoria?

59

Ubuntu me ha fallado recientemente. Creo que es porque se queda sin memoria, así que ejecuté el free -mcomando y descubrí que mi uso de memoria era realmente alto. Entonces, corrí toppara encontrar al culpable, pero los procesos mostrados estaban usando menos del 1.5% de la memoria. ¿Cómo sé qué programa está haciendo que Ubuntu se bloquee / se quede sin memoria? A continuación se muestra la salida:

shafee@shafee-pc:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          3824       3714        110          0        978       1954
-/+ buffers/cache:        780       3044
Swap:           99          0         99

shafee@shafee-pc:~$ top
top - 02:12:14 up  1:24,  2 users,  load average: 0.16, 0.42, 1.49
Tasks: 182 total,   1 running, 181 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.9%us,  1.9%sy,  0.3%ni, 79.3%id, 15.5%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:   3916708k total,  3803848k used,   112860k free,  1002308k buffers
Swap:   102396k total,        0k used,   102396k free,  2001852k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
 4200 root      20   0  289m  53m  38m S    2  1.4   1:06.45 Xorg               
 5590 shafee    20   0 19348 1368  956 R    2  0.0   0:00.01 top                
    1 root      20   0 24124 2136 1264 S    0  0.1   0:02.05 init               
    2 root      20   0     0    0    0 S    0  0.0   0:00.00 kthreadd           
    3 root      20   0     0    0    0 S    0  0.0   0:24.23 ksoftirqd/0        
    6 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/0        
    7 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/1        
    9 root      20   0     0    0    0 S    0  0.0   0:00.11 ksoftirqd/1        
   11 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/2        
   13 root      20   0     0    0    0 S    0  0.0   0:03.89 ksoftirqd/2        
   14 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/3        
   16 root      20   0     0    0    0 S    0  0.0   0:00.16 ksoftirqd/3        
   17 root       0 -20     0    0    0 S    0  0.0   0:00.00 cpuset             
   18 root       0 -20     0    0    0 S    0  0.0   0:00.00 khelper            
   19 root       0 -20     0    0    0 S    0  0.0   0:00.00 netns              
   21 root      20   0     0    0    0 S    0  0.0   0:00.01 sync_supers        
shafee@shafee-pc:~$

¿O es normal tener 110 MB de memoria libre y mi problema está relacionado con algo más?

shxfee
fuente
Parece que tampoco tienes suficiente intercambio. Recomendado es aproximadamente el doble del tamaño de su RAM
Marco Ceppi

Respuestas:

74

Estás leyendo la salida de forma freeincorrecta. El kernel de Linux realiza gran parte de su propia administración de memoria, a su vez asigna más de lo que realmente necesita, por lo que su verdadera cantidad de "memoria libre" se 3044encuentra en la columna "libre" de la +/- Buffers/cachelínea, por lo que solo se consumen 780 MB.

Por defecto topse ordenará según el consumo de la CPU. Puede presionar Shift+ Mpara ordenar por porcentaje de memoria consumida, lo que le permite comprender mejor qué software está utilizando la memoria asignada al núcleo.


free -m
             total       used       free     shared    buffers     cached
Mem:          7873       3916       3956          0        231       1117
-/+ buffers/cache:       2567       5305
Swap:        12401          0      12401

Y en la parte superior con memoria ordenada:

top - 17:05:18 up 2 days,  1:40,  4 users,  load average: 0.21, 0.14, 0.11
Tasks: 237 total,   1 running, 234 sleeping,   0 stopped,   2 zombie
Cpu(s):  1.6%us,  0.8%sy,  0.1%ni, 96.7%id,  0.8%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   8062420k total,  4013632k used,  4048788k free,   237204k buffers
Swap: 12699644k total,      292k used, 12699352k free,  1144752k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                          
 1632 root      20   0  884m 240m 6532 S    0  3.1   1:20.17 java                                                                                                                                                                             
 3911 marco     20   0 1011m 165m  22m S    0  2.1   9:20.62 chrome                                                                                                                                                                           
 3852 marco     20   0  770m 162m  45m S    0  2.1  14:59.59 chrome                                                                                                                                                                           
 1091 root      20   0  491m 160m 118m S    3  2.0  29:19.44 Xorg                                                                                                                                                                             
 1747 marco     20   0  659m 108m  34m S    1  1.4  18:43.92 compiz                                                                                                                                                                           
 3964 marco     20   0 1113m  99m  21m S    0  1.3  18:51.88 chrome                                                                                                                                                                           
 1759 marco     20   0  668m  94m  21m S    0  1.2   2:27.42 nautilus                                                                                                                                                                         
 3046 marco     20   0  788m  86m  26m S    0  1.1   1:22.96 evolution                                                                                                                                                                        
 1793 marco     20   0  647m  85m  18m S    0  1.1   0:12.74 shutter                                                                                                                                                                          
 1791 marco     20   0  404m  85m  13m S    0  1.1   5:19.51 bitcoin                                                                                                                                                                          
 2938 marco     20   0  809m  78m  31m S    0  1.0   1:01.07 empathy                                                                                                                                                                          
 9630 marco     20   0  265m  73m  19m S    1  0.9  12:41.52 skype                                                                                                                                                                            
 9618 marco     20   0  914m  64m  21m S    0  0.8   1:14.04 chrome                                                                                                                                                                           
 1777 marco     20   0  432m  64m  14m S    0  0.8   1:45.96 pastie

Finalmente, para ayudarlo a diagnosticar cuál es el software real, intente pasar el -cindicador a la parte superior: top -cya que eso le dará la ruta completa, el nombre y los parámetros del comando en ejecución.

Marco Ceppi
fuente
gracias: / parece que mis bloqueos están relacionados con algo más entonces.
shxfee
1
@Shafee Es posible que desee abrir una nueva pregunta, que describa qué se está bloqueando y proporcione los archivos de registro o detalles relevantes para ver si podemos ayudarlo a resolver esos bloqueos.
Marco Ceppi
1
Guau. aprendí algo nuevo otra vez ... ¡salud marco otra vez!
andybleaden
77
Ver también linuxatemyram.com
Lekensteyn
3

Puede iniciar la aplicación gnome-system-monitor. Es lo mejor para saber cuánto ram es usado por qué aplicaciones, también cuánta CPU también se usa. Puede cambiar la prioridad de un proceso para que se ejecute aún más rápido, por ejemplo, si desea convertir video, etc.

digitalcrow
fuente
1
ec2 no tiene gnome-system-monitor en la línea cmd, ¿hay alguna alternativa?
Siddharth
3
@Siddharth puede usar, htopque es una versión más bonita de top. Presione F6 para ordenar, por ejemplo, el uso de CPU o RAM.
rosch
@Siddharth todavía puede instalar gnome-system-monitor en un sistema sin GUI (aunque instalará bastantes dependencias). Luego, siempre que tenga un cliente Linux, puede ejecutarlo mediante el reenvío X.
Kris Jace
1

En Kubuntu , solo presiono Ctrl, Escy luego clasifico las cosas usando el campo de interés: memoria, CPU, ...

ingrese la descripción de la imagen aquí

Adobe
fuente
0

Esta es una buena pregunta, pero la información muestra que hay mucha memoria disponible. Sin embargo, debería estar monitoreando el uso de su memoria.

Mi monitor de sistema favorito es conkyy la pantalla de memoria es parte de él:

Conky.gif

La línea de memoria total muestra que se están utilizando 2.5 GiB de 7.4 GiB.

La línea de memoria detallada muestra:

  • Web Contentestá utilizando el 7% de la memoria. Este es un subprograma de Firefox.
  • Firefox en sí está usando el 7% de la memoria
  • ffmpegestá utilizando el 3% de la memoria. Esta es la .gifgrabadora que peekhace el video que estamos viendo.

Conky es altamente configurable y el escritorio de todos se ve diferente. Puedes conkybuscar en Google y obtener 787 mil visitas.

WinEunuuchs2Unix
fuente