Řešení 1:
vmtouch vypadá jako dobrý nástroj pro tuto práci.
Nejdůležitější:
- dotaz, kolik adresáře je uloženo v mezipaměti
- dotaz, kolik souboru je uloženo v mezipaměti (také které stránky, grafické znázornění)
- načíst soubor do mezipaměti
- odebrat soubor z mezipaměti
- uzamknout soubory v mezipaměti
- spustit jako démon
vmtouch manuál
UPRAVIT: Použití, jak je uvedeno v otázce, je uvedeno v příkladu 5 na domovské stránce vmtouch
Example 5
Daemonise and lock all files in a directory into physical memory:
vmtouch -dl /var/www/htdocs/critical/
EDIT2: Jak je uvedeno v komentářích, nyní je k dispozici úložiště git.
Řešení 2:
To je také možné pomocí vmtouch Virtual Memory Toucher utility.
Tento nástroj vám umožňuje ovládat mezipaměť systému souborů v systému Linux. Můžete vynutit nebo zamknout konkrétní soubor nebo adresář v subsystému mezipaměti virtuálního počítače nebo jej použít ke kontrole, které části souboru/adresáře jsou obsaženy ve virtuálním počítači.
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
Nebo...
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
Řešení 3:
Trik chudáka, jak dostat věci do mezipaměti souborového systému, je jednoduše to chytit a přesměrovat na /dev/null.
Řešení 4:
Linux uloží do mezipaměti tolik IO disku, kolik jen může. Toto jsou statistiky mezipaměti a vyrovnávací paměti. Pravděpodobně to udělá lepší práci než vy při ukládání správných věcí.
Pokud však trváte na ukládání dat do paměti, můžete vytvořit ram disk pomocí tmpfs nebo ramfs. Rozdíl je v tom, že ramfs přidělí veškerou paměť, kterou požadujete, protože tmpfs bude používat pouze paměť, kterou používá vaše blokové zařízení. Moje paměť je trochu rezavá, ale měli byste to zvládnout:
# mount -t ramfs ram /mnt/ram
nebo
# mount -t tmpfs tmp /mnt/tmp
a poté zkopírujte svá data do adresáře. Je zřejmé, že když vypnete počítač nebo odpojíte tento oddíl, vaše data budou ztracena.
Řešení 5:
Po nějakém rozsáhlém čtení o funkcích pro odkládání jádra 2.6 a ukládání stránek do mezipaměti jsem našel 'fcoretools'. Která se skládá ze dvou nástrojů;
- fincore:Odhalí, kolik stránek má aplikace uložena v hlavní paměti
- fadvise:Umožňuje vám manipulovat s hlavní pamětí (paměť stránky).
(V případě, že to někoho jiného bude zajímat, zveřejním to zde)