Crea un "RAMDisk" sulla tua distribuzione Linux

Icona RAMDisk

Come sai, la velocità di accesso a una memoria è molto importante. I colli di bottiglia generati in passato tra memorie magnetiche e processori hanno fatto sì che fosse necessario includere una memoria buffer più veloce, l'ariete. Successivamente, con l'avanzamento dei microprocessori è arrivata la cache, ancora più veloce per offrire un buffer tra la RAM ed i registri della CPU. Più recentemente sono apparsi i dischi rigidi SSD, che sono più veloci degli HDD magneto-meccanici in quanto si basano sulla memoria flash.

Gigabyte ha pensato alcuni anni fa di creare un disco rigido con RAM (un RAMDisk chiamato i-RAM), una memoria molto veloce rispetto ai dischi rigidi, ma qualcosa di simile è successo a quello che è successo ad Ageia con la sua scheda PhysX. Non si sono davvero gelificati e hanno finito per scomparire dal mercato, e ora con SSD (e SSD basati su RAM) ha ancora meno senso. Di cosa si tratta? Bene, fondamentalmente utilizza la memoria RAM per archiviare i dati come se fosse un disco rigido, quindi l'accesso è molto più veloce.

Bene, non hai bisogno di una i-RAM o di un SSD, o qualcosa del genere per velocizzare i trasferimenti e l'accesso alle directory, ai file o ai programmi che desideri. Per quello puoi crea un RAMDisk sulla tua distribuzione Linux. L'unico requisito è avere abbastanza RAM,> 4GB consigliati, per riservarne un po 'da utilizzare come "hard disk" ultraveloce. Qualcosa di simile a ciò che alcune GPU per laptop hanno fatto con Share Memory, ma in questo caso per i tuoi dati.

Per creare questa memoria, devi calcolare la memoria che hai, perché se ne esaurisci tutta o gran parte finirai la RAM per gli scopi per cui è stata creata e sarà stupido. Ad esempio, se hai 8 GB di RAM, potresti prendere 2 GB per il RAMDisk. Ripeto, la sua cosa è che hai più RAM, se hai 2 GB o 4 GB potrebbe non valerne la pena ... (ricorda in "size =" specifica la dimensione, nel mio esempio ho optato per 1024MB, cioè 1 GB, oppure puoi anche usare "G" invece di "M" per specificarlo in GB) Una volta che lo sai, possiamo lavorare con i seguenti passaggi dal tuo terminale:

mkdir /tmp/ramdisk

mount -t tmpfs none /tmp/randisk -o size=1024M

Ora hai 1 GB riservato nella RAM in modo da poter aggiungere quello che vuoi alla directory ramdisk che abbiamo creato. Fai i test delle prestazioni e vedrai come è più veloce tutto quello che hai dentro ... Se vuoi, puoi creare la partizione nella tua RAM con un altro file system diverso da tmpfs, come ext4 o ramfs.

E se vuoi che l'input del montaggio rimanga ... Fai attenzione !! I dati che salvi qui se spegni o riavvii il PC andranno persi, ma l'input rimarrà pin modo da non dover creare la partizione ad ogni avvio con il seguente trucco per aggiungerlo alla tabella delle partizioni (fstab) in modo che venga creato automaticamente (usa il tuo editor di testo preferito per modificare l'input: vi, nano, gedit ...):

gedit /etc/fstab

Y en el fichero de texto que se abre crea la siguiente entrada sin comillas "tmpfs /mnt/ramdisk tmpfs nodev, nosuid, noexec, nodiratime, size=1024M 0 0"

IMPORTANTE: Ricorda che i tuoi dati scompariranno al riavvio o all'arresto computer, poiché la RAM è una memoria volatile. Quindi, qualunque cosa tu voglia conservare, creane una copia su una partizione del disco rigido.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   mauricio suddetto

    Ho una domanda, una volta spenta l'apparecchiatura, i dati continueranno ad essere in memoria? Lo dico poiché la RAM è volatile. Apprezzerei se potessi spiegarmelo.

    1.    Isaac PE suddetto

      Ciao,

      Hai ragione, ho dimenticato di commentare nell'articolo che essendo volatile verrà cancellato ogni volta che avvii il computer. Grazie per avermelo ricordato, l'ho già aggiunto. È qualcosa di molto importante che non dovrebbe essere trascurato in modo che nessuno perda i propri dati.

      Saluti e spero di aver aiutato. Grazie!!!

      1.    mauricio suddetto

        Quello che stavo vedendo è che ci sono programmi che eseguono questa partizione. Ciò che questi programmi fanno è creare un'immagine sul disco rigido dei dati che si trovano nella RAM in modo che al riavvio non vengano persi. Quindi quando il sistema si avvia, a quanto ho capito, i dati salvati sul disco rigido vengono scaricati nella RAM in modo che possiamo usarli di nuovo. Grazie per la nota e per aver risposto prontamente! Saluti!

  2.   Leopoldo Cantillo suddetto

    Interessante, è pensare ad alcune applicazioni pratiche, uno script che crei questa partizione RAM all'inizio e carichi i file di interesse, non sarà utile ... sarà utile mettere un database ...? devi approfondire l'argomento ... grazie per l'appunto.

  3.   Sultanovic suddetto

    potrebbe funzionare solo con i dettagli di fs. Nei miei test ha funzionato solo come segue:

    mount -t tmpfs tmpfs / tmp / ramdisk -o size = 300m

  4.   Ismael suddetto

    Incredibili, le meraviglie che si possono fare con GNU / LINUX. :)

  5.   Jimmy Olano suddetto

    Che ne dici di usare quel RAMDisk per la partizione "tmp"?

    Per poter, potrei, occorrerà mettere codice, non chiedo codice CHIEDO SULLA PRATICITÀ DELL'OGGETTO, PER USARLO. Noto che per i database, anche se ricordo bene, esiste già un'opzione per supportare le tabelle del database nella memoria RAM, ad esempio: https: // dev.mysql.com/doc /refman/5.5/en/ storage-engine -setting. html

  6.   Anonimo suddetto

    Se sei fortunato e trascinato negli ultimi 20 anni potrai avere 64GiB di RAM e quindi essere in grado di copiare il file del disco rigido virtuale di VirtualBOX (o qualsiasi altra macchina virtuale) nella RAM; Presumo che questo file non occupi più di 48GiB (per lasciare abbastanza RAM libera per Linux e per la macchina virtuale). In questo modo la macchina virtuale vola, e se vuoi che anche le modifiche nella macchina virtuale vadano perse (immutabilità) non avrai più bisogno di perdere le prestazioni nel rendere immutabile l'hard disk virtuale della macchina, perché prima di avviarlo copi dalla NVMe / SSD / HDD alla RAM e quindi spegnendo tutto ciò che è nella RAM viene perso (proprio ciò che si desidera in questo caso, che è immutabilità).

    Quindi, con tanta RAM puoi rendere l'immagine dell'hard disk non immutabile e di dimensione fissa, ottenendo la massima prestazione possibile nell'accesso, che insieme al fatto che detto hard disk sarà nella RAM, ne rende reale delizia quando si gestiscono macchine virtuali (solo uno snatch alla volta).

    Che quando finisci di usare la macchina virtuale, vuoi preservare lo stato del disco rigido virtuale, poiché viene copiato dalla RAM a NVMe / SSD / HDD.

    Che ho visto ci sono già alcuni NVMe che sono in grado di leggere a velocità di poco superiori a 5GiB / s (sì, cinque gigabyte al secondo in lettura) e che usarne solo uno (in RAID0 o simili sarebbe ancora più veloce), per la copia l'immagine del disco rigido virtuale da 48GiB da esso alla RAM richiede solo una decina di secondi, olé!
    Con contro quando si esegue il processo opposto (da RAM a NVMe) i più veloci che ho visto per ora sono un po 'più di 3GiB / s in scrittura (sì, tre gigabyte al secondo in scrittura), quindi salvare l'immagine di 48GiB virtuale duro drive da RAM a NVMe richiede solo circa diciotto secondi, ancora una volta un enorme olé!

    Avremo uno dei più veloci NVMe e 64 GiB di RAM con Linux e una macchina virtuale con ad esempio Windows 10, è un bel passaggio se la RAM viene utilizzata per ospitare il disco rigido della macchina virtuale.

    E ora il regalo per Linux ... esiste già un pacchetto chiamato "ramroot" (almeno sembra quello per le distribuzioni basate su Arch) che durante l'avvio si occupa di copiare l'intera root del sistema Linux su RAM e continuare ad avviare dalla RAM, con la quale otteniamo l'immutabilità anche sul Linux che stiamo utilizzando, senza contare che verrà eseguito dalla RAM, a costo di aumentare un po 'il tempo di avvio.

    Se chi legge questo conosce le distribuzioni Linux avviabili da CD / USB che vengono copiate nella RAM durante l'avvio (come SystemRescueCD, ecc.), Conosceranno i vantaggi che fornisce: si avvia sempre allo stesso modo, va sempre il più velocemente possibile perché tutto è in RAM, nulla viene scritto sui dischi fisici durante l'avvio o durante l'utilizzo di Linux (cosa molto utile per allungare la vita dell'SSD, personalmente in meno di un mese e con meno di un terabyte scritto, alcuni SSD sono già partiti me per lavorare, nello specifico 120 GB del marchio KingDian), tranne ovviamente se montiamo qualcosa in lettura e scrittura e salviamo qualcosa lì, combinandolo con la macchina virtuale, il sistema 'vola' negli accessi al disco, poiché tutti vanno alla RAM.

    Avere tutto il Linux in RAM allunga notevolmente la vita utile di SSD e NVMe, poiché durante l'avvio non viene scritto nulla o quasi nulla e una volta avviato assolutamente nulla a meno che non siamo noi a farlo.

    I miei test sono stati effettuati su un Ryzen 7 2700X (4.35 GHz con 8 core e 16 thread) con 64GiB DDR4 3200MHz e scheda grafica NVidia 1050 Ti da 4GiB.

    Nota: ci sono schede madri che supportano anche 1 TiB di RAM e microfoni con 64 thread come ThreadRipper 2, ecc.

  7.   Marcos suddetto

    Il tuo commento è molto interessante, ma non dobbiamo esagerare con la RAM necessaria: ho un'immagine VDI di Windows 10 che pesa solo 13 GB, con 14 GB di RAM funzionerebbe con totale facilità.

    Non sono molto chiaro riguardo al montaggio dell'intero sistema operativo nella RAM che non sia un po 'troppo. Se hai il tuo SSD formattato in BTRFS con la compressione al volo abilitata (molti meno dati vengono scritti sull'unità), poiché quasi solo i dati vengono scritti nella partizione di sistema quando vengono installati i pacchetti (che ovviamente vogliamo che rimangano la partizione di sistema). SSD / disco), vengono modificati i file di configurazione (file di testo di dimensioni trascurabili, e la compressione LZO di BTRFS li lascia in una dimensione ancora più trascurabile) e poco altro, perché mi sembra uccidere le mosche con il cannone colpi; tieni presente che tutte le distribuzioni moderne motan / tmp in RAM se l'utente ha più di 4 GB, penso alla RAM, quindi l'SSD / disco non subisce la minima usura a causa di molte operazioni temporanee che vengono scritte, che era cosa di più cane che ho inserito nella partizione / qualche anno fa.

    Un'altra cosa è la home, lì i dati vengono scritti costantemente: cache, impostazioni che cambiano di volta in volta se abbiamo spostato una finestra, download, ecc. Lì potrebbe essere interessante lavorare solo in RAM e sincronizzarsi su disco solo se lo vogliamo davvero, anche se dovrebbe esserci qualche strumento (non so se ci sarà, non sarei sorpreso, ma fino a leggere il tuo commento Non ho pensato al problema) per ricordare all'utente quando sta per chiudere la sessione che ci sono modifiche nella sua / home senza salvare o addirittura chiederci se vogliamo sincronizzarle su disco, perché sicuramente la metà delle volte noi avrebbe dimenticato e spento il computer per aiutare noi stessi in testa mezzo secondo dopo.

    "Ci sono schede madri che supportano anche 1 TiB di RAM e microfoni con 64 thread come ThreadRipper 2, ecc."

    Già, e rack che supportano ancora molto di più, ma non lasciarci andare xD. Torniamo sul pianeta Terra dove le persone difficilmente possono permettersi una squadra da 800 euro ...

    Saluti.

  8.   Marcos suddetto

    "Ho un'immagine VDI di Windows 10 che pesa solo 13 GB, con 14 GB di RAM funzionerebbe con totale facilità."
    Scusa, volevo dire 24 GB. Il mio dito è andato al tasto successivo?