GNU/Linux >> Linux Esercitazione >  >> Linux

Memorizzazione nella cache/precaricamento di file su Linux nella RAM

Soluzione 1:

vmtouch sembra un buon strumento per il lavoro.

In evidenza:

  • interroga la quantità di una directory memorizzata nella cache
  • interroga la quantità di un file memorizzato nella cache (anche quali pagine, rappresentazione grafica)
  • carica il file nella cache
  • rimuove il file dalla cache
  • blocca i file nella cache
  • esegui come demone

manuale di vmtouch

MODIFICA: L'utilizzo come richiesto nella domanda è elencato nell'esempio 5 su vmtouch Homepage

Example 5

Daemonise and lock all files in a directory into physical memory:

vmtouch -dl /var/www/htdocs/critical/

EDIT2: Come notato nei commenti, ora è disponibile un repository git.

Soluzione 2:

Ciò è possibile anche utilizzando vmtouch Virtual Memory Toucher utilità.

Lo strumento consente di controllare la cache del filesystem su un sistema Linux. Puoi forzare o bloccare un file o una directory specifici nel sottosistema della cache della VM, oppure utilizzarlo per verificare quali parti di un file/directory sono contenute all'interno della 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

Oppure...

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

Soluzione 3:

Il trucco di un uomo povero per inserire roba nella cache del filesystem è semplicemente catturarlo e reindirizzarlo a /dev/null.

Soluzione 4:

Linux memorizzerà nella memoria quanto più IO del disco possibile. Questo è ciò che sono le statistiche della cache e della memoria buffer. Probabilmente farà un lavoro migliore di te nell'archiviare le cose giuste.

Tuttavia, se insisti a memorizzare i tuoi dati in memoria, puoi creare un'unità RAM utilizzando tmpfs o ramfs. La differenza è che ramfs allocherà tutta la memoria richiesta, mentre tmpfs utilizzerà solo la memoria utilizzata dal dispositivo a blocchi. La mia memoria è un po' arrugginita, ma dovresti essere in grado di fare:

 # mount -t ramfs ram /mnt/ram 

o

 # mount -t tmpfs tmp /mnt/tmp

e quindi copiare i dati nella directory. Ovviamente, quando spegni la macchina o smonti quella partizione, i tuoi dati andranno persi.

Soluzione 5:

Dopo alcune approfondite letture sulle funzionalità di swapping del kernel 2.6 e di cache delle pagine ho trovato 'fcoretools'. Che consiste in due strumenti;

  • fincore:rivelerà quante pagine l'applicazione ha memorizzato nella memoria principale
  • fadvise:ti permette di manipolare la memoria centrale (page-cache).

(Nel caso in cui qualcun altro lo trovi interessante, lo pubblico qui)


Linux
  1. Utilizzo della memoria di Linux

  2. Come controllare la dimensione della RAM nella riga di comando di Linux in Gb

  3. Come scrivere file di registro nella RAM usando Log2ram in Linux

  4. Cache DNS in Linux

  5. Rendere Linux read swap in memoria

Comando Rm in Linux

Swappiness in Linux:tutto ciò che devi sapere

Come sincronizzare il profilo del browser in Tmpfs (RAM) in Linux

Come unire più file PDF in un unico PDF in Linux

Come cancellare la cache di memoria RAM e il buffer e lo spazio di scambio su Linux

Trova la dimensione della RAM in Linux