Esse problema de vazamento de memória?

1

Buffers + Em cache + Gratuito = 3.588.092 (3.4G) Mas eu ainda posso usar 10G de memória (não usando o swap). Isso é um problema de vazamento de memória? E depois de fazer isso, a memória vazada pode estar de volta?

  1. A memória livre (definida pelo homem) é de 3.588.092 (digamos 3.4G) e a memória total é de 32G
  2. Durante este passo, não encontramos nenhum processo que consuma muita memória através do comando 'top', Então pensamos que o 3.4G free não está correto, nós temos 100% de memória livre garantida pelo menos 20G
  3. Montamos nossa memória como um ramdisk para local e escrevemos dados nela, como você pode ver, é 10G e é bem-sucedida
  4. Depois de desmontar, a memória livre sobe para 11.959.064 como poderia ser?

Obrigado

[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
    
por Freeagle 08.08.2016 / 05:55

1 resposta

0

Em primeiro lugar, uma recomendação para ler link , pois é sempre uma ajuda para entender o gerenciamento de memória do Linux.

Provavelmente, você deve manter a ideia de que os conceitos interessantes são "disponíveis" e "não disponíveis". Memória livre está disponível. A memória usada pelos buffers / cache pode estar disponível também, mas o kernel não liberará essa memória se não houver razão para isso. Quando você criou o ramdisk de 10GB, provavelmente liberou alguns desses buffers ou objetos de cache, então quando o ramdisk foi destruído você obteve mais memória livre (embora ele sempre estivesse "disponível"). Espero que isso ajude a entender o gerenciamento de memória (mas sério, leia o link acima: D)

Como última nota ao lado de top , você também pode usar slabtop para obter algumas informações sobre o uso da memória interna.

    
por 08.08.2016 / 19:58