Veel Linux-gebruikers proberen altijd zoveel mogelijk prestaties uit hun systeem te halen. Een grote bottleneck voor de systeemprestaties komt vaak voort uit de snelheid van bestandsoverdracht, dat wil zeggen de lees- en schrijftijden van het systeem. Hoewel recente schijftechnologieën zoals SSD's (Solid State Drives) en NVMe (Non Volatile Memory Express) de overdrachtstijden aanzienlijk hebben versneld ten opzichte van traditionele harde schijven, kan geen enkele technologie tippen aan de snelle prestaties van een RAM-schijf.
Een RAM-schijf is een virtuele opslagruimte die zich direct in het RAM-geheugen (Random Access Memory) van een systeem bevindt. Als jouw systeem bijvoorbeeld 16 GB RAM-geheugen heeft, kun je 3 GB opslagruimte binnen dat RAM-geheugen creëren en deze gebruiken om bestanden op te slaan. Het resultaat is dat jouw systeem 13 GB geheugen (16 – 3 = 13) overhoudt voor andere taken, terwijl de 3 GB die je hebt toegewezen, wordt gebruikt als RAM-schijf voor bestanden.

RAM-schijven zijn virtuele opslagruimtes die een deel van het geïnstalleerde RAM-geheugen van de computer in beslag nemen. Deze virtuele opslagruimte kan vervolgens worden gebruikt voor het opslaan van bestanden. Het voordeel van een RAM-schijf is dat deze veel sneller werkt dan conventionele opslagmedia zoals SSD's en harde schijven. Dit betekent dat het lezen en schrijven van bestanden extreem snel gaat, wat een veel naadlozere, performantere en aangenamere ervaring oplevert voor gebruikers die toegang moeten hebben tot veel bestanden en de latentie zo veel mogelijk willen beperken.
Een RAM-schijf heeft één groot nadeel, namelijk dat de bestandsopslag niet permanent is. Met andere woorden, RAM is vluchtig computergeheugen en alle gegevens gaan verloren wanneer het systeem wordt uitgeschakeld. Daarom zijn RAM-schijven alleen nuttig in omgevingen waar we tijdelijke gegevens moeten opslaan en daar ondertussen extreem snel toegang toe moeten hebben.
In omgevingen met veel RAM en waar het systeem zelden opnieuw wordt opgestart (denk aan bedrijfsserveromgevingen), zijn RAM-schijven cruciaal voor een responsieve gebruikerservaring, omdat ze de gevraagde gegevens in een oogwenk leveren. Deze kracht kan ook worden benut door gewone eindgebruikers, bijvoorbeeld als je aan een videoproject werkt, grote hoeveelheden code compileert of andere taken uitvoert waarbij je vaak toegang moet hebben tot grote hoeveelheden gegevens of gewoon veel kleine bestanden.
WAARSCHUWING
Houd er rekening mee dat een RAM-schijf alleen geschikt is voor tijdelijke opslag.
Alles wat op de RAM-schijf is opgeslagen, gaat verloren wanneer de computer wordt uitgeschakeld of opnieuw wordt opgestart.
Zorg ervoor dat je alle belangrijke gegevens zo snel mogelijk van de RAM-schijf verwijdert, of bewaar alleen kopieën van bestanden op de RAM-schijf.
Zoals gezegd is het voordeel van het gebruik van een RAM-schijf de snelheid. Dat is het zo'n beetje. Het tijdelijke karakter ervan kan ook als een voordeel worden gezien, omdat het ideaal is voor tijdelijke opslagbehoeften – het wist zelfs zelf de gegevens wanneer de computer wordt uitgeschakeld. Maar dit kan net zo goed een nadeel zijn als een voordeel.
Het grootste nadeel van het gebruik van RAM-schijven is dat de opslag tijdelijk is. Het zou onverstandig zijn om belangrijke bestanden op een RAM-schijf op te slaan, tenzij er ook een kopie van de bestanden op permanente opslag (harde schijf, SSD, flashdrive, enz.) aanwezig is.
Een ander nadeel is dat het een erg dure opslagvorm is. Slechts een paar gigabyte aan RAM-schijfruimte kan evenveel kosten als een harde schijf van een terabyte. Maar voor gebruikers die wat RAM-ruimte over hebben, hoeft het geen echt nadeel te zijn om een deel van de RAM-ruimte te reserveren voor virtuele opslag op een RAM-schijf.
Het laatste nadeel is dat je tijdens het werken met RAM-schijven beter op de systeembronnen moet letten. Dit geldt vooral als je van plan bent een groot deel van het RAM toe te wijzen aan virtuele ruimte voor de RAM-schijf. Als het systeem zware taken begint te verwerken en veel informatie in het RAM-geheugen dumpt, kan het geheugen van de computer vrij snel vol raken en kan de ruimte die je voor de RAM-schijf hebt toegewezen, niet worden gebruikt als extra ruimte.
tmpfs (temporary file system) is het bestandssysteem dat wordt gebruikt voor RAM-schijven.
We kunnen de mount opdracht gebruiken om een nieuwe RAM-schijf aan te maken en te specificeren hoeveel geïnstalleerd geheugen we willen dat de RAM-schijf in beslag neemt.
Om te beginnen is het een goed idee om te controleren hoeveel RAM er in de computer is geïnstalleerd en hoeveel daarvan momenteel vrij is.
Daarvoor kunnen we eenvoudigweg de free opdracht gebruiken met de volgende opties:
dany@pindabook:~$ free -ght
total used free shared buff/cache available
Mem: 7,7Gi 1,3Gi 5,5Gi 119Mi 1,3Gi 6,4Gi
Swap: 7,5Gi 0B 7,5Gi
Total: 15Gi 1,3Gi 12Gi
Bovenstaande uitvoer laat zien dat we 5,5 GB RAM beschikbaar hebben om mee te werken. Het zou geen goed idee zijn om dat allemaal te gebruiken voor onze RAM-schijf. Laten we in plaats daarvan slechts 3 GB gebruiken, zodat het systeem nog wat bufferruimte overhoudt voor andere taken die zich kunnen voordoen.
Laten we vervolgens een map maken waar we onze RAM-schijf gaan koppelen (mounten). Je kunt ook een bestaande map gebruiken als je dat wilt, ervan uitgaande dat deze leeg is.
dany@pindabook:~$ sudo mkdir -p /mnt/ramdisk
[sudo] wachtwoord voor dany:
Nu gaan we de mount opdracht gebruiken om een RAM-schijf aan te maken en deze te koppelen aan de map die we zojuist hebben aangemaakt.
We moeten de optie -t tmpfs gebruiken om de RAM-schijf aan te maken.
De volgende opdracht maakt een RAM-schijf aan met een grootte van 3 GB:
dany@pindabook:~$ sudo mount -t tmpfs -o size=3g tmpfs /mnt/ramdisk
Dat is alles.
Als je de RAM-schijf die je zojuist hebt aangemaakt wilt controleren, kun je de df opdracht uitvoeren:
dany@pindabook:~$ df -h
Bestandssysteem Grootte Gebruikt Besch Geb% Aangekoppeld op
udev 3,8G 0 3,8G 0% /dev
tmpfs 786M 1,6M 785M 1% /run
/dev/sda3 92G 7,9G 79G 10% /
tmpfs 3,9G 1,2M 3,9G 1% /dev/shm
efivarfs 72K 22K 46K 33% /sys/firmware/efi/efivars
tmpfs 5,0M 12K 5,0M 1% /run/lock
tmpfs 1,0M 0 1,0M 0% /run/credentials/systemd-journald.service
tmpfs 3,9G 4,0K 3,9G 1% /tmp
/dev/sda1 244M 8,8M 235M 4% /boot/efi
/dev/sda4 183G 67G 107G 39% /usr/home/Documents
tmpfs 786M 84K 786M 1% /run/user/1000
tmpfs 3,0G 0 3,0G 0% /mnt/ramdisk
Nu kun je beginnen met het kopiëren van bestanden naar de RAM-schijf.
Als je dezelfde opdrachten hebt gebruikt als hierboven, dan zou de RAM-schijf toegankelijk moeten zijn in de map /mnt/ramdisk.
Een lege RAM-schijf gebruikt bijna geen geheugenruimte. Pas na het opslaan van bestanden wordt het beschikbare RAM verbruikt. M.a.w. het RAM-gebruik neemt langzaam toe naarmate er meer bestanden op staan. Bovendien daalt het RAM-gebruik weer als er bestanden verwijderd worden.
De aangemaakte RAM-schijf kan je samen met de volledige inhoud ervan verwijderen met de volgende opdracht:
dany@pindabook:~$ sudo umount /mnt/ramdisk
Nu is de door de RAM-schijf gebruikte geheugenruimte terug beschikbaar voor andere taken.
Om steeds een RAM-schijf ter beschikking te hebben, kan je deze ook laten aanmaken in het opstarten van het Linux systeem.
De eenvoudigste manier om een RAM-schijf bij het opstarten aan te maken, is door deze als een nieuwe mount toe te voegen in het bestand /etc/fstab.
Zorg er wel voor dat de map-locatie bestaat, anders start het systeem niet correct op bij het laden van de fstab.
WAARSCHUWING
Fouten in het /etc/fstab kunnen er voor zorgen dat jouw systeem niet meer opstart.
Start met systeembeheerrechten (sudo) een editor (nano) om het /etc/fstab aan te passen:
dany@pindabook:~$ sudo nano /etc/fstab
# Ramdisk
tmpfs /mnt/ramdisk tmpfs rw,nodev,nosuid,size=3g 0 0
Sla het aangepaste bestand op (Ctrl+s) en verlaat de nano editor (Ctrl+x).
Nu mag je zeker niet herstarten of afsluiten, maar moet je eerst testen of /etc/fstab geen fouten bevat (zie bovenstaande waarschuwing). We testen /etc/fstab op eventuele fouten met:
dany@pindabook:~$ sudo mount -a
Geen nieuws is goed nieuws.
Controleer de uitvoer van df om te verifiëren dat de RAM-schijf is gekoppeld.
Opmerking: deze zou leeg moeten zijn, aangezien deze zojuist is aangemaakt.
dany@pindabook:~$ df -h | grep tmpfs
tmpfs 786M 1,6M 785M 1% /run
tmpfs 3,9G 1,2M 3,9G 1% /dev/shm
tmpfs 5,0M 12K 5,0M 1% /run/lock
tmpfs 1,0M 0 1,0M 0% /run/credentials/systemd-journald.service
tmpfs 3,9G 4,0K 3,9G 1% /tmp
tmpfs 786M 84K 786M 1% /run/user/1000
tmpfs 3,0G 0 3,0G 0% /mnt/ramdisk
Als je dit overzicht van alle RAM-schijven nader bekijkt, merkt je dat er meerdere standaard door het Linux systeem werden aangemaakt.
Veel distributies doen dit (Debian vanaf versie 13 Trixie).
Zo heeft Debian Trixie op mijn systeem standaard een RAM-schijf van 3,9 GB aangemaakt en gekoppeld aan /tmp.
M.a.w. als je een RAM-schijf in Debian Trixie wilt gebruiken, hoef je die niet zelf aan te maken, maar gebruik je de /tmp map.
Ook hoef je nooit reservekopieën van de tmpfs mappen te maken, hier /run en /tmp, deze bevatten namelijk enkel tijdelijke bestanden die indien nodig bij elke systeemstart opnieuw worden aangemaakt.
Zelf aangemaakte automatisch opstartende RAM-schijven verwijder je door de betreffende regel in het /etc/fstab bestand te verwijderen.
Zorg dat je na het verwijderen het /etc/fstab bestand controleert op eventuele fouten, dit om ervoor te zorgen dat bij een herstart alles goed werkt.
Verwijder ook nooit geen RAM-schijven die door de distributie bij de installatie aangemaakt werden, deze zorgen namelijk voor het goed en betrouwbaar functioneren van jouw Linux systeem.