O free
comando do Linux exibe a quantidade de memória do seu computador em uso e a quantidade ainda disponível para uso dos programas. Sua saída pode ser confusa para os não iniciados, mas mostraremos como entendê-la.
Índice
O free
comando imprime um resumo rápido do uso de memória em uma janela de terminal. ele não tem muitas opções ou truques na manga, e não demorou muito tempo ou esforço para aprender a usá-lo. Aprender a interpretar corretamente as informações que ele fornece, entretanto, é outra história. É muito fácil ficar confuso com o que free
está lhe dizendo.
Em parte, isso se deve à terminologia – como a diferença entre “gratuito” e “disponível” – e em parte é devido ao funcionamento interno da memória e das rotinas de gerenciamento do sistema de arquivos do kernel do Linux. Se você tiver memória sobressalente para que o kernel possa fazer bom uso, ele a pegará emprestada para seus próprios fins. Até você precisar de volta.
Vamos mergulhar nos mecanismos subjacentes e nas rotinas de dados para que você possa avaliar o que está acontecendo por baixo do capô e como tudo isso afeta o uso de sua memória de acesso aleatório (RAM).
Vamos free
começar sem opções e ver o que temos:
livre
Isso está enrolado de uma forma feia. No seu computador, você poderá esticar a janela do terminal. Aqui está a saída em uma tabela mais organizada:
total usado grátis compartilhada buff / cache disponível Mem: 2038576 670716 327956 14296 1039904 1187160 Troca: 1557568 769096 788472
Os números são dados em kibibytes , que são 1024 bytes. No Manjaro, o free
comando tem o alias de free -m
. Isso força o free
uso de mebibytes , que são 1.048.576 bytes. Em outras distribuições, o padrão é kibibytes.
Os relatórios da linha superior sobre a memória do sistema, os relatórios da linha inferior sobre o espaço de troca. Vamos apresentar as colunas aqui e, em seguida, examiná-las com mais detalhes em breve. As colunas da linha de memória são as seguintes:
Total
– ( Free
+ Buffers
+ Cache
).tmpfs
sistema de arquivos.Para a linha de troca, as colunas são:
Para separar as Buff/cache
figuras em suas próprias colunas, use a -w
opção (larga):
free -w
Esse é o resultado. Em vez de uma Buff/cache
coluna, temos uma Buffers
coluna e uma Cache
coluna. Aqui estão os números em uma tabela:
total usado cache de buffers compartilhados grátis disponível Mem: 2038576 683724 265708 14660 94568 994596 1160420 Troca: 1557568 761416 796152
Vamos ver o que representam os números nas colunas.
Este é o mais simples. É a quantidade de RAM que você instalou na placa-mãe. Este é o recurso precioso pelo qual todos os processos em execução estão lutando. Pelo menos eles estariam lutando se o kernel não estivesse arbitrando.
Aliás, o local de onde free
reúne suas informações é o /proc/meminfo
pseudo-arquivo. Você mesmo pode examinar este arquivo com o seguinte comando:
menos / proc / meminfo
A saída é uma única lista de nomes e valores.
É aqui que começa a ficar interessante.
A Used
figura representa o que você provavelmente espera, além de um monte de outras coisas. Esta é a memória que é alocada para processos, tomada por programas do usuário e usada por coisas como os ambientes de desktop GNOME ou KDE . Sem surpresas aí. Mas também inclui os números Buffers
e Cache
.
A RAM que não está sendo usada para algo é RAM desperdiçada. O kernel usa RAM sobressalente para armazenar caches e buffers que permitem operar com mais eficiência. Portanto, esta RAM está sendo usada para algo pelo kernel, mas não por nada no espaço do usuário .
Se for recebido um pedido de memória que só pode ser atendido pela renúncia de parte da RAM que o kernel está usando para seus próprios dispositivos, então é o que acontece, perfeitamente. Liberar essa RAM e usá-la para outros aplicativos não afetará o funcionamento correto do sistema Linux – nada vai quebrar – mas pode afetar o desempenho do sistema.
Portanto, esta coluna realmente significa “toda a RAM que está em uso por algo, mesmo que possa ser recuperada instantaneamente”.
Esta coluna contém o valor da quantidade de RAM que não está sendo usada por nada. Como a Used
coluna contém os números de Buffers e Cache, não é incomum que sistemas Linux em perfeito funcionamento tenham muito pouca RAM listada como “livre”.
Isso não é necessariamente uma coisa ruim e quase certamente significa que você tem um sistema funcionando perfeitamente normal que está regulando o uso de RAM corretamente. Ou seja, a RAM está sendo usada por aplicativos e outros processos de espaço do usuário e pelo kernel em seus esforços para tornar o desempenho de seu computador o melhor possível.
A figura na Shared
coluna representa a memória dedicada a manter tmpfs
sistemas de arquivos baseados em RAM . Esses são sistemas de arquivos criados na memória para facilitar o funcionamento eficiente do sistema operacional. Para ver quais tmpfs
sistemas de arquivos estão presentes, use o df
comando .
As opções que estamos usando são:
-h
(humano): Use unidades sensíveis e de melhor ajuste.--total
: Exibe uma linha com os totais na parte inferior da saída.--type=tmpfs
: Relate apenas nos tmpfs
sistemas de arquivos.df -h --total --type = tmpfs
A primeira coisa que o atinge quando você olha para esses valores é que eles são muitas vezes maiores do que a figura na Shared
coluna. Os tamanhos mostrados aqui são os tamanhos máximos desses sistemas de arquivos. Na realidade, cada um deles ocupa apenas a memória de que precisa. A figura na Shared
coluna é a única a acreditar no uso da memória.
O que esses sistemas de arquivos contêm? Aqui está uma análise rápida:
created
de pam_systemd para armazenar arquivos temporários para este usuário, que tem o ID de usuário 1000. Este é o usuário atual, usuário dave.As colunas Buffer
e Cache
só aparecem se você tiver usado -w
(largo). Sem a w
opção – , os números dessas duas colunas são combinados na Buff/cache
coluna.
Essas duas áreas de memória interagem e dependem uma da outra. A área de cache contém (principalmente) dados que foram lidos do disco rígido . Ele é retido no caso de você precisar acessá-lo novamente. É mais rápido extrair os dados do cache do que lê-los do disco rígido. O cache também pode conter dados que foram modificados, mas ainda não gravados de volta no disco rígido, ou valores que foram calculados e ainda não foram salvos em um arquivo.
Para controlar os vários fragmentos de arquivo e stashes de dados, o kernel constrói um índice para a área de memória cache, na área de memória de buffers. Buffers são partes da memória que contêm o bloco de disco e outras estruturas de informação. Eles contêm dados sobre os dados mantidos na área de memória cache. Portanto, os buffers são metadados para o cache.
Quando uma solicitação de leitura de arquivo é feita, o kernel lê os dados nas estruturas de dados do buffer procurando o arquivo ou fragmento de arquivo que foi solicitado. Se for encontrado, o pedido é atendido a partir da área de memória cache apontada pelas estruturas de dados do buffer. Se não estiver presente no cache – e também não estiver nos metadados na área de memória dos buffers – o arquivo é lido do disco rígido.
As estruturas na área de memória buffer são:
Você pode ver por que faz sentido condensar a memória usada para as áreas de buffer e memória cache em uma única Buff/cache
coluna. Eles são como duas partes da mesma coisa. A área de memória cache seria inútil sem a área de memória buffer fornecendo um índice para seu conteúdo.
A coluna disponível é a soma da Free
coluna mais as partes das Buffers
colunas e Cache (ou a Buff/cache
coluna) que podem ser abandonadas imediatamente . A Available
coluna é uma estimativa, não um número exato. É uma estimativa informada e precisa, mas não deve ser considerada tão precisa até o último byte.
Para alterar as unidades que exibem as figuras gratuitamente, use uma das seguintes opções.
Por exemplo, para usar valores legíveis por humanos, use a -h
opção:
livre -h
free
usará a unidade mais apropriada para cada valor. Como você pode ver, alguns dos valores são exibidos em MiB e alguns em GiB.
A --total
opção livre causa para apresentar uma linha total que resume os valores a partir dos Total
, Used
e Free
colunas do MAM e Swap
linhas.
free -h --total
A -c
opção (contagem) diz free
para correr um certo número de vezes, com uma pausa de um segundo entre cada uma. Para free
executar duas vezes, use este comando:
free -h -c 2
Se você quiser ver o efeito de um determinado aplicativo no uso da memória, pode ser útil free
executá-lo continuamente. Isso permite que você execute free
em uma janela de terminal enquanto inicia, usa e fecha o aplicativo que está investigando.
A -s
opção (segundos) determina a duração da pausa entre cada execução de free
. Para ter uma execução gratuita continuamente com uma pausa de três segundos entre cada atualização, use este comando:
free -s 3
Pressione Ctrl+C
para interromper o processo e retornar ao prompt de comando.
Para free
executar com uma pausa especificada entre cada atualização, mas parar após um certo número de relatórios, combine as opções -s
(segundos) e -c
(contagem). Para ter free
executado cinco vezes com uma pausa de dois segundos entre cada atualização, use este comando:
free -s 2 -c 5
Depois que as cinco atualizações aparecerem, o processo será encerrado automaticamente e você retornará ao prompt de comando.
Isso é de pouca utilidade hoje em dia, mas se você estiver executando o Linux em um computador de 32 bits, pode ser útil. Ele separa o uso de memória de memória baixa e memória alta.
Em um sistema operacional baseado em Linux de 32 bits, a CPU pode endereçar um máximo de 4 GB de memória. A memória é dividida em memória baixa e memória alta. Pouca memória é mapeada diretamente para a parte do kernel do espaço de endereço. Memória alta não possui mapeamento de kernel direto. A memória alta geralmente está acima de 896 MB.
Isso significa que o próprio kernel (incluindo seus módulos ativos) só pode fazer uso de pouca memória. Os processos do usuário – qualquer coisa que não seja o kernel em si – podem potencialmente fazer uso de memória alta ou baixa.
Em um computador de 64 bits, não haverá valores mostrados para memória alta:
free -h -l
Uma rápida recapitulação:
Total
– ( Free
+ Buffers
+ Cache
).tmpfs
sistemas de arquivos.Cache
.Free
, Buffer
e Cache
que pode ser usada para atender a uma solicitação de memória.
Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…
Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…
A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…
A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…
O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…
Para ver suas fotos mais de perto ou para uma edição precisa , você pode…