Solución 1:
vmtouch parece una buena herramienta para el trabajo.
Puntos destacados:
- consultar cuánto de un directorio se almacena en caché
- consultar cuánto de un archivo se almacena en caché (también qué páginas, representación gráfica)
- cargar archivo en caché
- eliminar archivo del caché
- bloquear archivos en caché
- ejecutar como demonio
vmtouch manual
EDITAR: El uso que se hace en la pregunta se enumera en el ejemplo 5 en la página de inicio de vmtouch
Example 5
Daemonise and lock all files in a directory into physical memory:
vmtouch -dl /var/www/htdocs/critical/
EDIT2: Como se indica en los comentarios, ahora hay un repositorio git disponible.
Solución 2:
Esto también es posible usando vmtouch Tocador de memoria virtual utilidad.
La herramienta le permite controlar el caché del sistema de archivos en un sistema Linux. Puede forzar o bloquear un archivo o directorio específico en el subsistema de caché de VM, o usarlo para verificar qué partes de un archivo/directorio están contenidas dentro de VM.
How much of the /bin/ directory is currently in cache?
$ vmtouch /bin/
Files: 92
Directories: 1
Resident Pages: 348/1307 1M/5M 26.6%
Elapsed: 0.003426 seconds
O...
Let's bring the rest of big-dataset.txt into memory...
$ vmtouch -vt big-dataset.txt
big-dataset.txt
[OOo oOOOOOOO] 6887/42116
[OOOOOOOOo oOOOOOOO] 10631/42116
[OOOOOOOOOOOOOOo oOOOOOOO] 15351/42116
[OOOOOOOOOOOOOOOOOOOOOo oOOOOOOO] 19719/42116
[OOOOOOOOOOOOOOOOOOOOOOOOOOOo oOOOOOOO] 24183/42116
[OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo oOOOOOOO] 28615/42116
[OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo oOOOOOOO] 31415/42116
[OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo oOOOOOOO] 36775/42116
[OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo oOOOOOOO] 39431/42116
[OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO] 42116/42116
Files: 1
Directories: 0
Touched Pages: 42116 (164M)
Elapsed: 12.107 seconds
Solución 3:
El truco de un hombre pobre para obtener cosas en el caché del sistema de archivos es simplemente buscarlo y redirigirlo a /dev/null.
Solución 4:
Linux almacenará en caché la mayor cantidad posible de E/S de disco en la memoria. Estas son las estadísticas de la memoria caché y del búfer. Probablemente hará un mejor trabajo que tú almacenando las cosas correctas.
Sin embargo, si insiste en almacenar sus datos en la memoria, puede crear una unidad ram utilizando tmpfs o ramfs. La diferencia es que ramfs asignará toda la memoria que solicite, mientras que tmpfs solo usará la memoria que usa su dispositivo de bloque. Mi memoria está un poco oxidada, pero deberías poder hacer:
# mount -t ramfs ram /mnt/ram
o
# mount -t tmpfs tmp /mnt/tmp
y luego copie sus datos en el directorio. Obviamente, cuando apague la máquina o desmonte esa partición, sus datos se perderán.
Solución 5:
Después de leer un poco sobre las funciones de intercambio de kernel 2.6 y almacenamiento en caché de páginas, encontré 'fcoretools'. Que consta de dos herramientas;
- fincore:revelará cuántas páginas ha almacenado la aplicación en la memoria central
- advise:le permite manipular la memoria central (caché de página).
(En caso de que alguien más encuentre esto interesante, lo publico aquí)