Deshabilite el caché de archivos de lectura y escritura de Linux en la partición

9

¿Cómo deshabilito el caché de archivos de Linux en una partición xfs (ambos leen y escriben)?

Tenemos una partición xfs sobre un RAID de hardware que almacena nuestro video RAW HD. La mayoría de los brotes son de 50-300 gb cada uno, por lo que el caché de Linux tiene una tasa de éxito del 0,001%.

He probado la opción de sincronización, pero aún llena el caché al hacer frente a los archivos.
(aproximadamente 30 veces más por sesión: P)

/ etc / fstab:

/ dev / sdb1 / video xfs sync, noatime, nodiratime, logbufs = 8 0 1

Estoy ejecutando Debian Lenny si ayuda.

cómplice
fuente

Respuestas:

6

Hay una solución que se adapta perfectamente a su caso de uso: http://code.google.com/p/pagecache-mangagement/

Después de revisar el código fuente:

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

problema

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

entonces, puede iniciar cualquier aplicación que desee con

pagecache-mangagement.sh <App>

¡y la aplicación no llenará tus cachés!

Robert Metzger
fuente
1
Esto era justo lo que necesitaba para un trabajo diferente, el mismo problema. Ahora mis otros programas pueden usar el caché allí donde es más útil.
cómplice
6

La herramienta nocache está diseñada para un objetivo similar: evitar que comandos específicos estropeen la memoria caché del búfer actual. Simplemente anteponga ./nocachea su comando:

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

Tenga en cuenta que la herramienta similar pagecache-mangagement: una herramienta para permitir la gestión del uso de pagecache de aplicaciones arbitrarias , como lo señaló rmetzger, todavía está en el mismo estado que en 2008. Por supuesto, eso puede ser bueno o malo, o una mezcla :) No tengo una comparación directa, pero le he pedido a la gente de nocache

nealmcb
fuente
5

Esto no se puede hacer limpiamente. Si necesita esto para ciertas aplicaciones, entonces deben modificarse para pasar O_DIRECTa sus open(2)llamadas.

Ignacio Vazquez-Abrams
fuente
Los archivos se escriben / leen con varias aplicaciones de terceros ... mv, md5sum, samba y similares. Tal vez pueda reemplazar algunos de estos con mi propia aplicación C en el futuro ... pero, por lo que puedo decir, samba dosnt tiene una opción O_DIRECT.
cómplice
Este parece ser el armario que pude conseguir. Ahora estoy usando O_DIRECT para copiar de la tarjeta P2 al HDD y luego nuevamente de la tarjeta P2 a md5sum para verificar. Esto elimina la mitad inútil de la memoria caché, por lo que las únicas cosas que son archivos de video en caché en el HDD.
cómplice
2

man raw. Puede vincular un dispositivo sin formato que omita el caché con eso. Tiene algunas restricciones. Solo lo he usado con dispositivos de CD / DVD, así que no sé qué tan bien funcionará para usted.

Keith
fuente
¿El comando sin formato enlaza el divice de una manera que puedo montar mi partición xfs en / video para usar con samba? La documentación y los resultados de Google parecen ser un poco vagos.
cómplice
No deberías mezclarlos. Creo que puedes montar el nuevo dispositivo sin formato en su lugar.
Keith
Bien, probaré esto en un viejo disco en blanco cuando tenga la oportunidad.
cómplice