GNU/Linux >> Znalost Linux >  >> Linux

Ukládání/předběžné načítání souborů v Linuxu do RAM

Ř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)


Linux
  1. Využití paměti Linuxu

  2. Jak vymazat mezipaměť v Linuxu

  3. DNS cache v linuxu

  1. Jak zkontrolovat velikost RAM v příkazovém řádku Linuxu v GB

  2. Jak zapisovat soubory protokolu do RAM pomocí Log2ram v Linuxu

  3. Jak odstranit vyrovnávací paměti a mezipaměť v Linuxu

  1. Jaký způsob, jak zjistit velikost mezipaměti L1, L2, L3 a RAM v Linuxu?

  2. Linux – Jak dát Ram do mezipaměti souborového systému?

  3. Jak zkontrolovat celkovou velikost RAM a využití paměti v Linuxu