
Tento monitorar o uso de memória no meu servidor Ubuntu. Quando executo o comando 'top', ele mostra que 70% da memória está usada. (mostrado na linha 'Mem:'). Mas quero encontrar os processos que pegam meu uso de memória e somá-los, está longe de 70%. Alguém pode ajudar a explicar isso para mim?
Muito obrigado!
Aqui está o meu principal resultado do 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 no total, 1 correndo, 91 dormindo, 0 parado, 0 zumbi CPU(s): 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 no total, 2903104k usados, 1221132k livres, 147508k buffers Troca: 4192252k no total, 440k usados, 4191812k grátis, 2596860k em cache PID USER PR NI VIRT RES SHR S %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 root 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 festa 30433 jiechao 20 0 10344 6776 1620 S 0 0,2 0:00,46 festa 31053 jiechao 20 0 10344 6768 1612 S 0 0,2 0:00,47 festa 28847 jiechao 20 0 48168 6096 2980 S 0 0,1 0:00,59 python 29178 www-dados 20 0 228m 5392 2052 S 0 0,1 0:00,06 apache2 29179 www-dados 20 0 12796 5148 1920 S 0 0,1 0:00,02 apache2 29180 www-dados 20 0 12796 5148 1920 S 0 0,1 0:00,02 apache2 29181 www-dados 20 0 12796 5148 1920 S 0 0,1 0:00,02 apache2 29182 www-dados 20 0 12796 5148 1920 S 0 0,1 0:00,02 apache2 29183 www-dados 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 opa 20 0 24572 3284 2280 S 0 0,1 0:00,18 opa 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 raiz 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 inicialização 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
Responder1
Claro que esse número é uma combinação de RAM usada pelo processo e buffers e cache para arquivos. O Linux tem uma filosofia de maximizar o uso de RAM para arquivos acessados, em vez de ter que acessar o disco rígido para obter esses arquivos.
Tente usar o comando free
ou observar o próprio kernel por meio 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
gato /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 free
comando mostrará o total de RAM, 7987492, no meu caso, dos quais 7717152 estão em uso e 270340 estão livres. 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 umartigo itworld.comsobre como entender o uso da memória:
O número de buffers representa blocos na memória que resultam do acesso do kernel ao disco, como quando o kernel precisa ler o conteúdo dos arquivos. O número em cache nos informa quanta RAM está sendo usada para armazenar em cache o conteúdo dos arquivos lidos recentemente. O valor 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.
OBSERVAÇÃO:Tenha em mente que o gerenciador de memória do kernel Linux liberará qualquer RAM usada para buffers e cache, caso um aplicativo realmente precise dela.
Recursos