O uso de memória do Linux não se soma


3

Eu tento monitorar o uso de memória no meu servidor ubuntu. Quando executo o comando 'top', ele mostra que 70% da memória é usada. (mostrado na linha 'Mem:'). Mas eu quero encontrar os processos que pegam meu uso de memória e os somam, está longe de 70%. Alguém pode ajudar a explicar isso para mim?

Muito obrigado!

Aqui está o meu resultado principal de comando:

início - 20:59:06 até 23 dias, 33 min, 3 usuários, média de carga: 0,06, 0,12, 0,09
Tarefas: 92 total, 1 em execução, 91 em sono, 0 parado, 0 zumbi
Processador (es): 0,3% us, 0,2% sy, 0,0% ni, 99,5% id, 0,0% wa, 0,0% hi, 0,0% si, 0,0% st
Mem: 4124236k total, 2903104k usado, 1221132k livre, 147508k buffers
Troca: 4192252k total, 440k usado, 4191812k grátis, 2596860k em cache

  PID USER PR NI VIRT RES SHR% CPU% MEM TIME + COMMAND
30558 mysql 20 0 311m 36m 5956 S 0 0.9 0: 00.74 mysqld
28848 jiechao 20 0 50688 9244 3144 S 0 0,2 0: 05,65 python
  956 raiz 20 0 11712 8004 2964 S 0 0,2 0: 39,26 ddclient - slee
28846 jiechao 20 0 49256 7652 3280 S 0 0.2 0: 07.17 python
22284 jiechao 20 0 10400 6876 1664 S 0 0,2 0: 00,49 bash
30433 jiechao 20 0 10344 6776 1620 S 0 0.2 0: 00.46 bash
31053 jiechao 20 0 10344 6768 1612 S 0 0,2 0: 00,47 bash
28847 jiechao 20 0 48168 6096 2980 S 0 0,1 0: 00,59 python
29178 www-data 20 0 228m 5392 2052 S 0 0.1 0: 00.06 apache2
29179 www-data 20 0 12796 5148 1920 S 0 0,1 0: 00.02 apache2
29180 www-data 20 0 12796 5148 1920 S 0 0,1 0: 00.02 apache2
29181 www-data 20 0 12796 5148 1920 S 0 0,1 0: 00.02 apache2
29182 www-data 20 0 12796 5148 1920 S 0 0,1 0: 00.02 apache2
29183 www-data 20 0 12796 5148 1920 S 0 0,1 0: 00.02 apache2
  999 raiz 20 0 11396 3948 2052 S 0 0,1 0: 21,21 apache2
  926 whoopsie 20 0 24572 3284 2280 S 0 0.1 0: 00.18 whoopsie
30933 raiz 20 0 9604 3104 2484 S 0 0,1 0: 00.00 sshd
22164 raiz 20 0 9604 3096 2484 S 0 0,1 0: 00.01 sshd
30313 root 20 0 9604 3096 2480 S 0 0,1 0: 00.00 sshd
24302 raiz 20 0 9632 3024 2428 S 0 0,1 0: 00.07 sshd
  787 raiz 20 0 6664 2424 1988 S 0 0,1 0: 00.05 sshd
    1 raiz 20 0 3504 1876 1276 S 0 0,0 0: 01,57 init
24421 jiechao 20 0 9632 1596 992 S 0 0,0 0: 00,00 sshd
  812 syslog 20 0 31044 1484 1008 S 0 0,0 1: 47,00 rsyslogd

Respostas:


4

Certifique-se de que esse número seja uma combinação de RAM usada por processos, buffers e cache de arquivos. O Linux tem uma filosofia de maximizar o uso de RAM para arquivos acessados, em vez de ter que pressionar o disco rígido para esses arquivos.

Tente usar o comando freeou olhar o próprio kernel através deste comando,cat /proc/meminfo.

livre

% free
             total       used       free     shared    buffers     cached
Mem:       7987492    7717152     270340          0     314644    2435048
-/+ buffers/cache:    4967460    3020032
Swap:      5963772       1304    5962468

cat / proc / meminfo

% cat /proc/meminfo 
MemTotal:        7987492 kB
MemFree:          284328 kB
Buffers:          314384 kB
Cached:          2427852 kB
SwapCached:          116 kB
Active:          4698232 kB
Inactive:        2374796 kB
Active(anon):    3756264 kB
Inactive(anon):   768392 kB
Active(file):     941968 kB
Inactive(file):  1606404 kB
Unevictable:          68 kB
Mlocked:              68 kB
SwapTotal:       5963772 kB
SwapFree:        5962468 kB
Dirty:               452 kB
Writeback:             0 kB
AnonPages:       4330964 kB
Mapped:           185540 kB
Shmem:            193864 kB
Slab:             306532 kB
SReclaimable:     261520 kB
SUnreclaim:        45012 kB
KernelStack:        6192 kB
PageTables:        94376 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     9957516 kB
Committed_AS:    9671884 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      585392 kB
VmallocChunk:   34359040964 kB
HardwareCorrupted:     0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       12288 kB
DirectMap2M:     8237056 kB

O freecomando mostrará a você RAM total, 7987492, no meu caso, dos quais 7717152 está sendo usado e 270340 é gratuito. Esta é uma combinação de RAM, buffers e cache. A segunda linha mostra quanto dessa RAM está sendo usada pelos buffers e cache, 4967460, o que significa que realmente tenho 3020032 de RAM livre.

De um artigo da itworld.com sobre como entender o uso da memória:

O número de buffers representa blocos na memória que resultam do kernel acessando o disco, como quando o kernel precisa ler o conteúdo dos arquivos. A figura em cache nos diz quanta RAM está sendo usada para armazenar em cache o conteúdo dos arquivos lidos recentemente. A figura do buffer aumenta quando a camada do sistema de arquivos é ignorada enquanto o cache aumenta quando o sistema de arquivos é usado. Ambos crescem à medida que as operações de leitura aumentam.

NOTA: Lembre-se de que o gerenciador de memória do kernel do Linux liberará qualquer RAM usada para buffers e cache, se um aplicativo realmente precisar dele.

Recursos

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.