tmpfs: ramdisk perfetta

Sto usando con soddisfazione tmpfs per montare nella RAM la partizione /tmp, in /etc/fstab ho inserito questa stringa

none /tmp tmpfs mode=1777 0 0

In questa maniera la dimensione massima che si può prendere la partizione virtuale della /tmp è la metà esatta della ram a disposizione, oppure per mettere un limite massimo basta impostarlo con size, per esempio per dare 500MB massimi a /tmp.

none /tmp tmpfs size=500m,mode=1777 0 0

Più facile a farsi che a dirsi, non ha molte altre opzioni, vedere man mount per migliori informazioni.

Ci sono altre alternative a usare tmpfs (ramfs o /dev/ram) ma queste sono le sue peculiarità:

  1. non si prende la metà della ram, il limite massimo è solo il limite massimo, se state usando 50MB di /tmp questa sarà la dimensione che prenderà in ram la partizione. Il limite massimo è quello che mettete voi.
  2. Ha più opzioni delle altre alternative.
  3. swappa, all’occorrenza usa la swap. Anche se non dovrebbe, perché abbiamo abbastanza ram e abbiamo configurato i programmi che sfruttano enormemente tmp di mettere i loro file altrove, se superiamo il size massimo usa la swap, tradotto non vi manda in freeze il sistema. EDIT: ho notato che l’uso della ram è prioritario rispetto a quello della partizione virtuale, il sistema swappa se la ram è piena (compresa la cache) mettendo quello che non ci sta più su /tmp in swap. Poco male, questo si verifica raramente

    $ free -h
    total used free shared buffers cached
    Mem: 2026 1969 56 0 31 1698
    -/+ buffers/cache: 240 1786
    Swap: 2047 8 2038

    [...]

    $ df -h
    Filesystem Dimens. Usati Disp. Uso% Montato su
    /dev/sda3 11G 4,6G 5,0G 48% /
    /dev/sdb1 457G 214G 221G 50% /home
    none 1014M 14M 1000M 2% /tmp
    none 200M 0 200M 0% /dev/shm
    /dev/sda6 2,0G 790M 1,2G 41% /var/cache/pacman
    /dev/sda8 137G 7,7G 122G 6% /mnt/FilmOriginali

Essendo la RAM una memoria volatile non occorre cancellare ad ogni avvio i file al suo interno, quindi si può tranquillamente editare

/etc/rc.sysinit

commentando la seguente riga (idea di el_cammello)

/bin/rm -rf /tmp/* /tmp/.* &>/dev/null

Fatto questo ho perfino spostato la Cache di firefox in /tmp, basta andare all’indirizzo about:config, creare una nuovo parametro Stringa

browser.cache.disk.parent_directory

e come parametro (prendo la mia configurazione come esempio)

/tmp/firefox-ugaciaka

Non serve creare la directory firefox-ugaciaka, viene creata da firefox ogni volta automaticamente.

Visto che ci siamo diminuiamo il tempo che firefox aspetta prima di incominciare a caricare una pagina, basta creare un nuovo valore intero

nglayout.initialpaint.delay

e impostarlo a 0. Ce lo possiamo permettere dato che non ha senso aspettare 250 ms, valore standard, per caricare una pagina avendo una connessione ADSL con la cache del browser in RAM

Ma perché fare tutto questo casino?

  1. la ram è più veloce nelle operazioni rispetto a un HD,
  2. non bollite l’HD,
  3. non dovete creare una tmp apposita se non volete avere la tmp nella root (/)
  4. consuma meno energia, aspetto fondamentale per i portatili!

Maggiori informazioni qui e qui

About these ads

26 risposte a “tmpfs: ramdisk perfetta

  1. Corro a rimontare la mia /tmp sulla ram… tanto sul portatile ne tengo un giga di ram!
    Anche troppa, mi sa che non l’ho mai utilizzata tutta, apparte quando ho tentato di parsare un file xml da 28 megabyte (portatile in ginocchio -.-”)…

    Bel post ;-)

    Emanuele

  2. Ciao, ho scoperto tmpfs grazie a un tuo post sul forum di archlinux (non si smette mai di imparare), e googolando per saperne di più ti ho ritrovato :-D :-D Ottima guida complimenti

  3. grazie

    peccato però che non riesca a capire cosa altro mettere in tmpfs, ho scritto un post sul forum di archlinux per sentire varie opinioni…

  4. Pingback: Velocizzare navigazione Internet « il blog di ugaciaka

  5. Pingback: cache firefox in ram « arcierisinasce.wordpress.com

  6. Ciao. Grande pensata questa.
    Però ho provato a mettere anche la cache di firefox nella ram, ma ho un dubbio: quando uso il browser l’HD lavora come ha sempre fatto. È normale o forse ho sbagliato qualcosa?

  7. Metto qui questo comandino:

    sudo mount -t tmpfs -o size=900M tmpfs /media/temp

    così quando serve copio e incollo :-)

  8. Pingback: A8SC-4P107C: risparmio energetico. Parte V « il blog di ugaciaka

  9. ci avevi pensato a fare questo: “/var/run and /var/lock can be tmpfs filesystems, to alleviate having to clean them up at each reboot.”

    • grazie ho fatto la modifica nell’fstab :-)

      Comunque non so se è stato un caso che riguarda la mia configurazione, ma mettendoli in ram non mi è più partito hal e quindi al boot sono rimasto senza tastiera e mouse, cmq ho risolto facilmente xke ho sysrescuecd comodo in grub :-p .. in pratica adesso devo specificare in DAEMONS anche “dbus” prima di “hal”, altrimenti hal non parte, mi dice che esiste già un file pid in /var.. il perchè non lo so, visto che hal dovrebbe già chiamarlo automaticamente

  10. a me non swappa.. ad esempio quando compilo firefox lo spazio non è sufficiente ed interrompe la compilazione

  11. Pingback: Il blog di Gianguido » Archivi del blog » Montare /tmp in RAM

  12. Pingback: Chromium cache in RAM « il blog di ugaciaka

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...