Como liberar buffers e caches do Linux



Experimente Nosso Instrumento Para Eliminar Problemas

Os usuários podem querer liberar o buffer e espaço de cache do Linux se acharem que está ocupando muito espaço na RAM. Isso geralmente ocorre porque eles estão acostumados com ambientes Windows ou Macintosh que não armazenam em cache de forma tão agressiva. Isso pode realmente reduzir o desempenho. No entanto, é uma boa ideia sincronizar a memória RAM e o armazenamento em disco, o que também é frequentemente considerado como uma liberação de caches do Linux, embora não seja de um ponto de vista muito técnico.



Você precisará trabalhar em um terminal para esta técnica. Pesquise o terminal no Ubuntu Dash ou segure Ctrl, Alt e T ao mesmo tempo. Os usuários de LXDE, Xfce4 e KDE podem querer clicar no menu Aplicativos ou Whisker, apontar para Ferramentas do Sistema e abrir o Terminal.



Método 1: usando o comando de sincronização

Em muitos casos, os usuários realmente desejam sincronizar as gravações em cache para o dispositivo de armazenamento persistente subjacente que contém os dados. Isso significa que todas as alterações feitas nos buffers de arquivo na memória são atualizadas no disco, portanto, se o sistema cair naquele momento, você terá uma boa chance de ter tudo atualizado. Se esse conceito parece um pouco avançado, lembre-se de que isso torna as informações em sua RAM iguais às informações em seu disco ou SSD.



Invocar o comando sync sem nenhum outro argumento faz exatamente isso. Ele atualiza os arquivos no disco com todas as alterações aguardando para serem gravadas. Tipo sincronizar na linha de comando e pressione Enter. Você não verá nenhuma saída e poderá fazer isso depois que qualquer comando tiver sido executado antes dele.

Este método é incrivelmente simples, pois requer apenas que você aprenda uma palavra. Ao contrário de outros métodos, é perfeitamente seguro fazer em todos os momentos e não reduzirá o desempenho, exceto por alguns momentos enquanto a sincronização com o disco ocorre. Se você estiver movendo vários arquivos entre unidades externas e quiser ter certeza de que todas as gravações foram feitas, libere os buffers do Linux digitando sync e pressionando Enter. Todos os outros métodos são estritamente para fazer benchmarks. Se você já ouviu alguém falar sobre setores sujos, esta é uma solução para esse problema. O Linux às vezes mantém os arquivos na memória, mas informa ao resto do sistema operacional que eles estão no disco, mas a execução da sincronização garante que essas alterações sejam atualizadas no disco também. Não os remove da RAM, então eles ainda serão oferecidos a outros programas que precisam acessá-los sem desacelerar as coisas.



Método 2: Buffers Linux Livres Completamente

Antes de prosseguir, tenha em mente que o Método 1 é quase sempre preferido, já que o Linux faz cache agressivamente de propósito para fazer com que seu dispositivo se mova mais rápido. Quase sempre, você desejará apenas executar a sincronização para fins de segurança para garantir que todas as gravações de disco foram concluídas. Se você está tentando realizar um benchmark de hardware ou algo do tipo, existe uma maneira de liberar completamente os caches do Linux.

Supondo que você compreenda totalmente o perigo de fazer isso, execute grátis && sync && echo 3> / proc / sys / vm / drop_caches && grátis no terminal. Por ser um comando muito longo, você pode destacá-lo aqui e copiá-lo. Para colar no terminal, use a opção Colar no menu Editar ou Diferente da sincronização por si só, você terá que executar a partir de um prompt de root. Coloque sudo na frente do comando se você estiver conectado como um usuário normal. Esta linha garante que você verá uma saída indicando que os caches de memória estão realmente sendo esvaziados.

Mais uma vez, o único motivo pelo qual você desejaria fazer isso é fazer benchmarks. Você pode notar uma queda real no desempenho depois de fazer isso, já que está esvaziando todos os dados que o Linux trabalhou duro para armazenar em cache. Você também pode desativar a troca digitando sudo swapoff -a e reative-o com sudo swapon -a , mas, novamente, eles precisam de acesso root e a única vez que você gostaria de fazer isso é se fosse um desenvolvedor tentando fazer benchmarks de hardware reais para um utilitário ou processo de sistema de arquivos. Todos os outros simplesmente desejarão executar a sincronização por conta própria como um usuário regular, sem acesso root, para garantir que todos os setores sujos sejam gravados no disco.

3 minutos lidos