1 votes

Est-ce que cette question de fuite de mémoire?

Buffers+Cached+Free = 3,588,092 (3.4G) Mais je peux toujours utiliser 10G de mémoire (sans utiliser le swap). Est-ce un problème de fuite mémoire? Et après avoir fait cela, la mémoire qui a fuit peut revenir?

  1. La mémoire libre (définie par l'homme) est de 3,588,092 (disons 3.4G) et la mémoire totale est de 32G
  2. Pendant cette étape, nous n'avons trouvé aucun processus qui consomme beaucoup de mémoire via la commande 'top', donc nous pensons que les 3.4G de mémoire libre ne sont pas corrects, nous sommes sûrs à 100% que la mémoire libre est d'au moins 20G
  3. Nous montons notre mémoire comme un ramdisk en local, et avons écrit des données dedans, comme vous pouvez le voir, elle est de 10G, et c'est un succès
  4. Après le démontage, la mémoire libre augmente à 11,959,064. Comment est-ce possible?

Merci

[root@dev001 ~]# free
             total       used       free     shared    buffers     cached
Mem:      32877844   31422864    1454980          0    1358500     774612
-/+ buffers/cache:   29289752    3588092
Swap:      1048568      67984     980584
[root@dev001 ~]# mkdir /mnt/ramdisk
[root@dev001 ~]# mount -t tmpfs -o size=10g tmpfs /mnt/ramdisk
[root@dev001 ~]# cd /mnt/ramdisk/
[root@dev001 ramdisk]# dd if=/dev/zero of=1g bs=1024 count=$((1024*1024*10))
10485760+0 records in
10485760+0 records out
10737418240 bytes (11 GB) copied, 20.0645 s, 535 MB/s
[root@dev001 ramdisk]# ls -lh
total 10G
-rw-r--r-- 1 root root 10G Jul 26 21:09 1g
[root@dev001 ramdisk]# free 
             total       used       free     shared    buffers     cached
Mem:      32877844   32630940     246904          0     792364   10901876
-/+ buffers/cache:   20936700   11941144
Swap:      1048568      67984     980584
[root@dev001 ~]# umount /mnt/ramdisk
[root@dev001 ~]# free 
             total       used       free     shared    buffers     cached
Mem:      32877844   22128348   10749496          0     792416     416160
-/+ buffers/cache:   20919772   11958072
Swap:      1048568      67984     980584
[root@dev001 ~]# free
             total       used       free     shared    buffers     cached
Mem:      32877844   22127372   10750472          0     792432     416160
-/+ buffers/cache:   20918780   11959064
Swap:      1048568      67984     980584

0voto

BiHi Points 928

Tout d'abord, une recommandation de lire http://www.linuxatemyram.com/ car c'est toujours utile pour comprendre la gestion de la mémoire Linux.

Probablement vous devriez garder à l'esprit que les concepts intéressants sont la mémoire "disponible" et "non disponible". La mémoire libre est disponible. La mémoire utilisée par les buffers/cache pourrait également être disponible mais le noyau ne libérera pas cette mémoire s'il n'y a pas de raison de le faire. Lorsque vous avez créé le ramdisk de 10 Go, cela a probablement libéré certains de ces buffers ou objets de cache, donc lorsque le ramdisk a été détruit, vous avez eu plus de mémoire libre (bien qu'elle ait toujours été "disponible"). J'espère que cela aide à comprendre la gestion de la mémoire (mais sérieusement, lisez le lien ci-dessus :D)

En dernier lieu, en plus de top, vous pouvez également utiliser slabtop pour obtenir des informations sur l'utilisation interne de la mémoire.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X