como limpar totalmente o cache do sistema de arquivos no linux?


9

Em um teste de desempenho, desejo ignorar a influência do cache do sistema linux (incluindo o cache da página / cache do inode e assim por diante).

Eu tentei o sinalizador O_DIRECT, mas verificou-se que a E / S direta ainda "aprecia" o efeito de algum cache.

Existe uma maneira completa de fechar o efeito do cache do sistema?


2
Qual é o objetivo de um teste de desempenho "irreal"? Você está tentando testar algo que nenhum sistema operacional moderno jamais permitiria que acontecesse.

Infelizmente, não é nada irreal, ainda é como o kernel aio funciona hoje. Eu queria muito que o Sr. T percebesse que a E / S e o cache assíncronos não são termos mutuamente exclusivos. É algo que os funcionários da Microsoft já perceberam há 15 anos (embora o desempenho anterior ao Vista possa ser decepcionante, especialmente sob concorrência). Um cara indiano também escreveu um patch anos atrás, mas foi recusado.

Respostas:


14

(na verdade cai assim ...) corra syncprimeiro, depois

pagecache gratuito:

echo 1 > /proc/sys/vm/drop_caches

dentões e inodes livres:

echo 2 > /proc/sys/vm/drop_caches

pagecache, dentries e inodes gratuitos:

echo 3 > /proc/sys/vm/drop_caches

Então você pode começar com um cache limpo, mas é claro que o cache ainda funcionará.


Eu ouvi sobre esse método em algum lugar. mas não há esses arquivos no meu ubuntu 10.04. então eu falhei ao executar os comandos acima.

@ tom_cat: Você precisa de um kernel mais recente que o 2.6.16, e o Ubuntu 10.04 veio com o 2.6.32, se não me engano, então isso deve funcionar. Eu apenas verifiquei meu 11,04 instalar Por que vale a pena, que tem esta entrada proc (infelizmente nenhuma 10,04 mais aqui)

@ Damon: Sim, você está certo. Muito obrigado. Eu descobri que havia feito logon em uma máquina remota do kernel antigo.

0

não, você não pode ignorar o cache. Mas, no entanto, você pode forçar uma sincronização do sistema de arquivos (ou seja, limpar o cache e gravar os dados no disco) com a chamada adicional do sistema fsync (3).

Saudações, CK

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.