Comment savoir quel programme utilise trop de mémoire?

59

Ubuntu s'est écrasé sur moi récemment. Je pense que c'est parce qu'il manque de mémoire, j'ai donc exécuté la free -mcommande et constaté que mon utilisation de la mémoire était très importante. Alors, j'ai couru toppour trouver le coupable, mais les processus affichés utilisaient moins de 1,5% de mémoire. Comment savoir quel programme est en train de provoquer un plantage / manque de mémoire d'ubuntu? Ci-dessous la sortie:

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:~$

Ou est-il normal d'avoir 110 Mo de mémoire libre et mon problème est-il lié à autre chose?

shxfee
la source
Il semble également que vous n'ayez pas assez d'échange. Nous recommandons environ deux fois la taille de votre RAM
Marco Ceppi

Réponses:

74

Vous lisez la sortie de freeincorrectement. Le noyau Linux effectue lui-même une grande partie de sa propre gestion de la mémoire, en allouant plus que ce dont il a réellement besoin - votre vraie quantité de "mémoire libre" se 3044trouve donc dans la colonne "Libre" de la +/- Buffers/cacheligne, ce qui ne représente que 780 Mo réellement consommés.

Par défaut, tople tri s'effectue en fonction de la consommation du processeur. Vous pouvez appuyer sur Shift+ Mpour trier en fonction du pourcentage de mémoire utilisée, ce qui vous permet de mieux comprendre quel logiciel utilise la mémoire allouée au noyau.


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

Et en tête de mémoire triée:

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

Enfin, pour vous aider à diagnostiquer le logiciel réel, essayez de passer le -cdrapeau en haut: top -cvous obtiendrez ainsi le chemin d'accès complet, le nom et les paramètres de la commande en cours d'exécution.

Marco Ceppi
la source
merci: / semble que mes accidents sont liés à autre chose alors.
shxfee
1
@Shafee Vous voudrez peut-être alors ouvrir une nouvelle question, décrivant ce qui se bloque et fournissant des fichiers journaux pertinents ou des détails pour voir si nous pouvons vous aider à résoudre ces plantages.
Marco Ceppi
1
Sensationnel. encore appris quelque chose de nouveau ... à la vôtre encore Marco!
andybleaden
7
Voir aussi linuxatemyram.com
Lekensteyn
3

Vous pouvez lancer l'application gnome-system-monitor Il est préférable de connaître la quantité de RAM utilisée par les applications, ainsi que la quantité de CPU utilisée. Vous pouvez modifier la priorité d'un processus pour qu'il s'exécute encore plus rapidement, par exemple si vous souhaitez convertir une vidéo, etc., etc.

digitalcrow
la source
1
ec2 ne dispose pas de gnome-system-monitor sur la ligne de commande, existe-t-il une alternative?
Siddharth
3
@Siddharth, vous pouvez utiliser htopune version plus agréable de top. Appuyez sur F6 pour trier, par exemple, l'utilisation du processeur ou de la RAM.
Rosch
@Siddharth, vous pouvez toujours installer gnome-system-monitor sur un système dépourvu d'interface graphique (vous devrez cependant installer pas mal de dépendances). Ensuite, tant que vous avez un client Linux, vous pouvez l'exécuter via le transfert X.
Kris Jace
1

Dans Kubuntu, il suffit d'appuyer sur Ctrl- Escpuis de trier les choses en fonction du domaine d'intérêt: mémoire, processeur, ...

entrez la description de l'image ici

Adobe
la source
0

C'est une bonne question, mais les informations montrent qu'il y a beaucoup de mémoire disponible. Vous devriez cependant surveiller votre utilisation de la mémoire.

Mon moniteur système préféré est conkyet l’affichage de la mémoire en fait partie:

Conky.gif

La ligne de mémoire totale indique que 2,5 Gio sur 7,4 Gio sont utilisés.

La ligne de mémoire détaillée montre:

  • Web Contentutilise 7% de mémoire. Ceci est un sous-programme Firefox.
  • Firefox lui-même utilise 7% de mémoire
  • ffmpegutilise 3% de la mémoire. C'est l' .gifenregistreur peekqui fait la vidéo que nous regardons.

Conky est hautement configurable et le bureau de tout le monde est différent. Vous pouvez google conkyet obtenir 787 mille visites.

WinEunuuchs2Unix
la source