Articles

como limpar a ‘Cache’ no Linux

a ‘cache’ do sistema de ficheiros linux (‘Cache’ de páginas) é usada para tornar as operações de IO mais rápidas. Sob certas circunstâncias, um administrador ou desenvolvedor pode querer limpar manualmente o cache. Neste artigo vamos explicar como funciona o cache do sistema de arquivos Linux. Então vamos demonstrar como monitorar o uso do cache e como limpar o cache. Vamos fazer alguns experimentos de desempenho simples para verificar que o cache está funcionando como esperado e que o Cache flush e procedimento claro também está funcionando como esperado.

How Linux File System Cache Works

the kernel reserves a certain amount of system memory for Cache the file system disk accesss in order to make overall performance faster. O cache no linux é chamado de Cache de página. O tamanho da cache da página é configurável com generosos valores por omissão habilitados a cache grandes quantidades de blocos de disco. O tamanho máximo do cache e as Políticas de quando expulsar dados do cache são ajustáveis com os parâmetros do kernel. A abordagem de cache linux é chamada de cache write-back. Isto significa que se os dados são escritos no disco, ele é escrito na memória no cache e marcado como sujo no cache até que ele é sincronizado para o disco. O kernel mantém estruturas internas de dados para otimizar quais dados para expulsar do cache quando mais espaço é necessário no cache.

durante as chamadas do sistema de leitura Linux, o kernel irá verificar se os dados solicitados são armazenados em blocos de dados no cache, que seria um sucesso de cache e os dados serão devolvidos do cache sem fazer qualquer IO para o sistema de disco. Para uma falha de cache os dados serão obtidos a partir do sistema IO e o cache atualizado com base nas políticas de cache como esses mesmos dados provavelmente serão solicitados novamente.

quando certos limiares de uso da memória são alcançados, as tarefas de fundo vão começar a escrever dados sujos para o disco para garantir que ele está limpando a cache de memória. Estes podem ter um impacto no desempenho de aplicações intensivas de memória e CPU e requerem afinação por administradores e desenvolvedores.

usando o comando livre para ver o uso da Cache

podemos usar o comando livre a partir da linha de comando, a fim de analisar a memória do sistema e a quantidade de memória alocada ao cache. Consulte o comando abaixo:

# free -m

o Que ver do comando acima é que não há 7,5 GB de RAM no sistema. Destes, apenas 209 MB é usado e 6,5 MB é livre. 667 MB é usado no cache buffer. Agora vamos tentar aumentar esse número executando um comando para gerar um arquivo de 1 Gigabyte e lendo o arquivo. O comando abaixo irá gerar aproximadamente 100MB de dados aleatórios e, em seguida, adicionar 10 cópias do arquivo em conjunto em um grande ficheiro.

# dd if=/dev/random do=/root/data_file count=1400000
# for i in `seq 1 10`; do echo $i; gato data_file >> large_file; realiza

Agora vamos certifique-se de ler este 1 Giga de arquivo e, em seguida, verifique a higiene comando novamente:

# cat large_file > /dev/null
# free -m

Podemos ver o cache de buffer de utilização subiu de 667 para 1735 Megabytes cerca de 1 Gigabyte aumento no uso do cache de buffer.

Proc Sys VM Drop Caches Command

o kernel linux fornece uma interface para largar a ‘cache’. vamos experimentar estes comandos e ver o impacto na configuração livre.

# echo 1 > /proc/sys/vm/drop_caches
# free -m

podemos ver acima que a maioria da memória intermédia cache de alocação foi liberado com este comando.

verificação Experimental que o Drop Caches funciona

podemos fazer uma validação de desempenho de usar o cache para ler o arquivo? Vamos ler o arquivo e escrevê-lo de volta para /dev/null, A fim de testar quanto tempo leva para ler o arquivo do disco. Vamos cronometrá-lo com o comando Temporal. Nós fazemos este comando imediatamente após limpar o cache com os comandos acima.

demorou 8,4 segundos para ler o ficheiro. Vamos lê-lo novamente agora que o arquivo deve estar no cache do sistema de arquivos e ver quanto tempo ele leva agora.

Boom! Bastou .2 segundos em comparação com 8,4 segundos para lê-lo quando o arquivo não foi Cache. Para verificar vamos repetir isso novamente, primeiro limpando o cache e, em seguida, lendo o arquivo 2 vezes.

funcionou perfeitamente como esperado. 8.5 segundos para a leitura e.2 segundos para a leitura em cache.

conclusão

a ‘cache’ da página está activa automaticamente nos sistemas Linux e irá tornar o IO mais rápido, armazenando os dados usados recentemente na ‘cache’. Se você quiser limpar manualmente o cache que pode ser feito facilmente enviando um comando de eco para o sistema de arquivos /proc indicando para o kernel para largar o cache e liberar a memória usada para o cache. As instruções para executar o comando foram mostradas acima neste artigo e a validação experimental do comportamento do cache antes e depois da descarga também foram mostradas.