[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Uso total da memória



Em 07/03/07, Ataliba Neto<traquinopqd@gmail.com> escreveu:
É o seguinte, tá consumindo muita memória e não há processo algum que esteja
usando esta memória.

backup:~# free -m
             total       used       free     shared    buffers     cached
Mem:          1512       1478         33          0         46       1361
-/+ buffers/cache:         71       1441
Swap:         2102          0       2102


E o TOP:
Tasks:  58 total,   1 running,  57 sleeping,   0 stopped,   0 zombie
Cpu(s):  6.7% us,  0.2% sy,  0.0% ni, 92.1% id,  0.9% wa,  0.0% hi,  0.0% si
Mem:   1548624k total,  1514204k used,    34420k free,    47536k buffers
Swap:  2152624k total,       60k used,  2152564k free,  1393692k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    1 root      15   0  1584  536  464 S  0.0  0.0   0:01.23 init
    2 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0
    4 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/1
    5 root      37  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/1
    6 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 events/0
    7 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 events/1
    8 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 khelper
    9 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 kthread
    13 root      10  -5     0    0    0 S  0.0  0.0   0:00.05 kblockd/0
   14 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kblockd/1
   15 root      15  -5     0    0    0 S  0.0  0.0   0:00.00 kacpid
  111 root      16  -5     0    0    0 S  0.0  0.0   0:00.00 kseriod
  155 root      15   0     0    0    0 S  0.0  0.0   0:05.96 pdflush
  156 root      15   0     0    0    0 S  0.0  0.0   0:03.78 pdflush
  157 root      10  -5     0    0    0 S  0.0  0.0   0:12.28 kswapd0
  158 root      16  -5     0    0    0 S  0.0  0.0   0:00.00 aio/0
  159 root      17  -5     0    0    0 S  0.0  0.0   0:00.00 aio/1
  309 root      15   0     0    0    0 S  0.0  0.0   0:00.00 kirqd
  630 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 khubd
  731 root      18  -5     0    0    0 S  0.0  0.0   0:00.00 ata/0
  732 root      18  -5     0    0    0 S  0.0  0.0   0:00.00 ata/1
  733 root      18  -5     0    0    0 S  0.0  0.0   0:00.00 ata_aux
  816 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_0
  817 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_1
  818 root      10  -5     0    0    0 S  0.0   0.0   0:00.00 scsi_eh_2
  819 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_3
 1202 root      10  -5     0    0    0 S  0.0  0.0   0:00.23 md0_raid1
 1229 root      10  -5     0    0    0 S  0.0   0.0   0:00.91 md1_raid1
 1257 root      18  -5     0    0    0 S  0.0  0.0   0:03.38 md2_raid1

A memória subiu devido ao rsync e bzip2, o problema é que após o término a
memória não foi liberada.

Meu amigo, o processo que está ocupando sua preciosa memória é o
KERNEL. Ele está fazendo cache de disco - e essa memória está
imediatamente disponível p/ qquer programa que quiser usá-la.


Vamos fazer as contas com os numeros do TOP:

Mem = used + free
1548624k = 1514204k + 34420k
used = buffers + cached + PROGRAMAS
1514204k = 47536k  + 1393692k + PROG

PROG = 72976k

que praticamente bate com o que o free diz.

Em outras palavras, seus programas estão usando meros 70 megabytes dos
seus 1.5GB de RAM - o resto está como cache de disco. Até aqui tudo
bem?


O que vc não está entendendo é que o cache na verdade é
aumentado/reduzido sob demanda - se algum prog. precisa de mais RAM, o
cache encolhe e tudo continua funcionando; quando um prog. fecha o
espaço extra vai virar cache a medida que mais arquivos forem lidos do
disco.


sugestão: faça um cat /dev/cdrom > /dev/null
observe os valores de memória, ejete o CD e verifique novamente os
valores de memória - e me diga pq da diferença.


--
Marcos



Reply to: