uso de memória real

15

se eu entendi corretamente, na saída a seguir produzida por free, 3535m é a memória livre real disponível para aplicativos, apenas 413m é usado, está correto? precisa de alguns esclarecimentos sobre a diferença entre Mem e - / + buffers / linha de cache.

livre -m
             total de buffers compartilhados gratuitos usados ​​em cache
Mem: 3949 3854 95 0 9 3431
- / + buffers / cache: 413 3535
Troca: 2047 1322725

fonte

Respostas:

16

A Mem: totalfigura é a quantidade total de RAM que pode ser usada pelos aplicativos. Este é o total de RAM instalada no sistema, menos:

  • memória reservada por dispositivos de hardware (geralmente memória de vídeo se a placa gráfica não tiver sua própria RAM);
  • memória usada pelo próprio kernel.

Esse total inclui:

  • free: memória atualmente usada para qualquer finalidade;
  • shared: um conceito que não existe mais. Ele é deixado na saída para compatibilidade com versões anteriores (existem scripts que analisam a saída free). (Nos sistemas atuais, você normalmente vê valores diferentes de zero porque sharedfoi redirecionado para mostrar a memória que é explicitamente compartilhada por meio de um mecanismo de memória compartilhada . Nos sistemas mais antigos, incluía arquivos mapeados por mais de um processo e memória compartilhável que permaneceu compartilhada depois fork().)
  • buffers: memória suportada por arquivos e que pode ser gravada em disco, se necessário;
  • cache: memória suportada por arquivos e que pode ser recuperada a qualquer momento (a diferença buffersé que os buffers devem ser salvos no disco antes de serem reutilizados, enquanto o cache consiste em itens que podem ser recarregados do disco);
  • used -buffers/cache: memória usada pelos aplicativos (e não paginada para troca).

Em uma pitada, o sistema pode ser executado sem buffers e cache, reservando RAM para aplicativos e executando sistematicamente leituras e gravações de disco sem cache. As -/+ buffers/cachefiguras indicam a quantidade de RAM usada diretamente pelos aplicativos ( usedcoluna) e a quantidade de RAM não usada pelos aplicativos ( freecoluna).

Embora isso possa variar muito, um sistema saudável normalmente possui cerca de metade de sua RAM dedicada a aplicativos e metade dedicada a buffers e cache. A menos que você esteja executando um servidor de arquivos dedicado, seu sistema possui mais RAM do que o necessário para o que você está fazendo no momento. Se o free - buffers/cachenúmero for baixo, isso indicaria um sistema que não possui RAM suficiente (ao contrário de uma crença generalizada, ter muita memória dedicada a buffers e cache é importante para o desempenho do sistema, e tentar reservar mais memória para aplicativos tornar 99,99% dos sistemas mais lentos).

A swaplinha é direta, mostra a quantidade de troca que está sendo usada (por aplicativos ou para tmpfsarmazenamento) e a quantidade que não está.

Gilles 'SO- parar de ser mau'
fonte
1
"shared: um conceito que não existe mais." - parece que foi reintroduzido em algum momento entre 2011 e 2016: unix.stackexchange.com/questions/307015/…
Marisha
3

Sim, você está certo. Buffers e cache são usados ​​pelo sistema operacional, mas estão disponíveis para aplicativos imediatamente. O sistema operacional está disposto a invalidar e jogar fora parte do cache para satisfazer a próxima solicitação de memória.

n. 'pronomes' m.
fonte