O que significam os diferentes contadores de memória no FreeBSD?

19

top me diz:

last pid: 64807;  load averages:  0.99,  0.97,  0.92                                          up 189+04:47:22 09:16:17
45 processes:  1 running, 44 sleeping
CPU:  0.4% user,  0.0% nice,  0.2% system,  6.4% interrupt, 93.0% idle
Mem: 222M Active, 2151M Inact, 2008M Wired, 823M Buf, 3499M Free
Swap: 8192M Total, 8192M Free

Munin mostra isso um pouco mais claramente:

Comovocêpodever,oservidortemcercade8GBdememóriaRAM.Eumeperguntoseeupossoenfiaressaferaemumservidormaismodestode2GB.Agoraeuseioqueativosebufferssignificam,euacho.Masestourealmentepreocupadocomasbolhas"com fio" e "inativas" da memória. Aqueles não mapeiam para qualquer processo existente, tanto quanto eu sei.

Note como a linha "ativa" verde subiu em dezembro: foi quando começamos a usar um daemon BGP neste roteador. Eu não entendo exatamente o que aconteceu em abril e maio, mas lembro de fazer uma atualização do sistema e mudar para pkgng nesse período.

Aqui está o roteador reserva para o primeiro, com menos memória RAM (4 GB):

ParecequeesteviveperfeitamentecommetadedaRAMeaindadeixacercade2GBlivres,oquemelevaaacreditarqueeupoderiamudarparaumacaixade2GBparaesteservidor,reduzindocustosemanutenção...

Algumasugestão?Oqueosvárioscontadoresdememóriamostradosnotoposignificam?Maisespecificamente,oquefaz:

  • Ativo
  • Inativo
  • Cache
  • Buffers
  • Comfio
  • Gratuito

...realmentesignifica?Euencontrei alguns posts explicando os bits do subsistema VM e eu lembro de ter um "ah-ah!" momento compreendendo tudo isso há 12 anos atrás, mas eu esqueci. :) Mesmo o fiel manual do FreeBSD falhou em responder minha pergunta ...

Posso fazer o downgrade para 2 GB?

    
por anarcat 06.06.2014 / 15:31

1 resposta

24

  • Active : Memória atualmente sendo usada por um processo
  • Inactive : Memória que foi liberada, mas ainda está armazenada em cache, já que pode ser usada novamente. Se mais Free de memória for necessária, essa memória poderá ser apagada e liberada. Esta memória não é apagada antes de ser necessária, porque "memória livre é memória desperdiçada", não custa nada manter os dados antigos no caso de serem necessários novamente.
  • Wired : Memória em uso pelo Kernel. Esta memória não pode ser trocada
  • Cache : Memória sendo usada para armazenar dados em cache, pode ser liberada imediatamente se necessário
  • Buffers : cache de disco
  • Free : Memória totalmente grátis e pronta para uso. Inactive , Cache e Buffers podem ficar livres se forem limpos.

Assim, você pode adicionar Inactive à sua Free count e considerá-lo não usado. Wired é a memória em uso pelo kernel, que inclui a pilha de rede. executar netstat -m fornecerá um resumo do uso da memória pela pilha de rede.

Com base em seus gráficos, além do relativo salto na memória wired no início de março, sim, você deve conseguir executar essa carga de trabalho em 2 GB de RAM. Se fizer isso, considere executar i386 em vez de amd64, já que cada alocação de memória ocupará menos espaço, já que os ponteiros serão 32 bits em vez de 64 bits.

    
por 15.06.2014 / 17:48