Desabilitar o cache de arquivos de leitura e gravação do linux na partição

9

Como desabilito o cache do arquivo linux em uma partição xfs (ambos lêem uma gravação).

Temos uma partição xfs sobre um RAID de hardware que armazena nosso vídeo em RAW HD. A maioria das gravações tem entre 50 e 300 GB cada, portanto o cache linux tem uma taxa de acerto de 0,001%.

Eu tentei a opção de sincronização, mas ela ainda preenche o cache ao copiar os arquivos.
(cerca de 30x mais por sessão: P)

/ etc / fstab:

/ dev / sdb1 / video sincronização xfs, noatime, nodiratime, logbufs = 8 0 1

Estou executando o debian lenny, se ajudar.

complistic
fonte

Respostas:

6

existe uma solução que se encaixa perfeitamente no seu caso de uso: http://code.google.com/p/pagecache-mangagement/

Depois de verificar o código fonte:

svn checkout http://pagecache-mangagement.googlecode.com/svn/trunk/ pagecache-mangagement-read-only

questão

make
sudo cp *.so /usr/local/lib/
sudo cp *.sh /usr/local/bin/

então, você pode iniciar qualquer aplicativo que desejar

pagecache-mangagement.sh <App>

e o aplicativo não preencherá seus caches!

Robert Metzger
fonte
11
Era exatamente o que eu precisava para um trabalho diferente, o mesmo problema. Agora meus outros programas podem usar lá cache onde é mais útil.
complistic
6

A ferramenta nocache foi projetada para um objetivo semelhante: impedir que comandos específicos estraguem o cache atual do buffer. Basta anexar ./nocacheao seu comando:

./nocache cp -a ~/ /mnt/backup/home-$(hostname)

Observe que a ferramenta semelhante pagecache-mangagement - Uma ferramenta para permitir o gerenciamento do uso do pagecache de aplicativos arbitrários , conforme observado por rmetzger, ainda está no mesmo estado em 2008. É claro que isso pode ser bom ou ruim, ou uma mistura :) Não tenho uma comparação direta, mas pedi ao pessoal do nocache uma

nealmcb
fonte
5

Isso não pode ser feito corretamente. Se você precisar disso para certos aplicativos, eles deverão ser modificados para passar O_DIRECTpara as open(2)chamadas.

Ignacio Vazquez-Abrams
fonte
Os arquivos são gravados / lidos com vários aplicativos de terceiros ... mv, md5sum, samba e similares. Talvez eu possa substituir alguns deles pelo meu próprio aplicativo C no futuro ... mas, tanto quanto eu posso dizer, o samba não tem uma opção O_DIRECT.
complistic
Este parece ser o armário que eu poderia conseguir. Agora estou usando O_DIRECT para copiar do cartão P2 para o disco rígido e depois novamente do cartão P2 para o md5sum para verificação. Isso remove a metade inútil do cache e, portanto, as únicas coisas que são arquivos de vídeo em cache no disco rígido.
complistic
2

man raw. Você pode vincular um dispositivo bruto que ignora o cache com isso. Tem algumas restrições. Eu o usei apenas com dispositivos de CD / DVD, então não sei se ele funcionará bem para você.

Keith
fonte
O comando raw liga a divice de uma maneira que eu possa montar minha partição xfs em / video para uso com o samba? A documentação e os resultados do google parecem um pouco vagos.
complistic
Você não deve misturá-los. Eu acho que você pode montar o novo dispositivo bruto.
Keith
Ok, testarei isso em uma unidade em branco antiga quando tiver uma chance.
complistic