Por que não há memória livre no meu sistema Ubuntu?

1

Portanto, free reporta 12318288 bytes totais, 11916148 usados e 402140 livres (efetivamente nada).

Então, top é assim:

Mem:  12318288k total, 11916596k used,   401692k free,    53756k buffers
Swap: 11894776k total,    40596k used, 11854180k free, 11291256k cached

Mas os primeiros processos quando classificados por MEM% são:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                   
 1288 postgres  20   0 6361m 6.0g 6.0g S    0 51.3   4:14.82 postgres                                                   
 1285 postgres  20   0 6358m 125m 125m S    0  1.0   0:04.04 postgres                                                   
  490 www-data  20   0  232m  30m 4536 S    0  0.3   0:00.42 apache2                                                    
  493 www-data  20   0  229m  27m 4412 S    0  0.2   0:00.30 apache2                                                    
  499 www-data  20   0  227m  25m 4552 S    0  0.2   0:01.30 apache2                                                    
  500 www-data  20   0  227m  25m 4272 S    0  0.2   0:00.65 apache2                                                    
  491 www-data  20   0  225m  23m 4328 S    0  0.2   0:00.22 apache2                                                    
  583 www-data  20   0  226m  23m 4272 S    0  0.2   0:00.17 apache2                                                    
32603 nobody    20   0  145m  21m  876 S    0  0.2   0:00.46 memcached

Nada realmente parece estar ocupando memória além dos 6GB atribuídos a postgres, então por que todos os 12GB de RAM são usados?

    
por Wells Oliver 15.08.2010 / 02:23

4 respostas

2

Como KahWee Teng disse, não é uma coisa ruim. Parece que a maioria da sua memória RAM está sendo usada para cache, o que é uma coisa muito boa. Veja aqui para mais detalhes:

link

    
por 15.08.2010 / 02:33
1

Não é necessariamente uma coisa ruim. Pelo menos seus aplicativos estão usando-os. Dito isto, 6GB ainda é muito usado. Você ajustou as configurações do PostgreSQL?

A memória no topo não se soma ao que está livre pelo caminho.

Você pode gostar de ler mais sobre a memória:

por 15.08.2010 / 02:29
0

É porque o linux não libera completamente a memória. Ele armazena em cache para a memória, caso você precise no futuro. Se o disco estiver cheio, o último segmento de memória usado será liberado. É algum tipo de ajustes. (forums.gentoo.org/viewtopic.php?t=175419) explica a situação muito melhor do que eu: >

    
por 15.08.2010 / 02:36
0

Buffers + Cache.

Veja este exemplo de saída "free -m":

$ free -m
             total       used       free     shared    buffers     cached
Mem:          1936       1413        522          0         14        500
-/+ buffers/cache:        898       1037
Swap:         2047        259       1788

Ram total é 2Gb, usado (1413) == 898 (processos) + 14 (buffers) + 500 (cache)

O Linux utiliza bastante RAM para armazenar em cache / buffer, então é muito normal usar 100% de RAM. Os problemas surgem sempre que a memória usada pelos processos atinge 100% (ou seja: você ficou sem RAM).

    
por 15.08.2010 / 02:37