Hoe maak je een wisselbestand op Linux

De binnenkant van een mechanische harde schijf.
zentilia / Shutterstock.com

Voeg swapruimte toe aan een Linux-computer, of vergroot de swapruimte die al aanwezig is, zonder gedoe met partities. We laten u de gemakkelijke manier zien om uw swapspace aan te passen.

Wissel bestanden versus wissel partities

Er zijn verschillende scenario’s waarin u de bestaande swapruimte wilt vergroten of nieuwe swapruimte aan uw Linux-computer wilt toevoegen.

  • Misschien wordt uw swapspace vaak maximaal of bijna maximaal uitgevoerd.
  • Het is gemakkelijk om tijdens het installatieproces op de verkeerde optie te klikken en het onbedoeld toevoegen van swap aan uw systeem te weigeren.
  • Misschien heb je eerder besloten dat je zoveel RAM-geheugen (Random Access Memory) had dat je geen swap nodig had, en ben je van gedachten veranderd.
  • Soms erf je de administratie van een systeem dat geen ruil heeft, om redenen die je nooit zult ontdekken.

De eenvoudige oplossing voor al deze is om een ​​wisselbestand aan uw computer toe te voegen. Dit is een speciaal bestand, vooraf toegewezen en gereserveerd voor gebruik als swapruimte. Een wisselbestand werkt samen met elke bestaande wissel die je hebt, of dat nu een wisselbestand of een wisselpartitie is.

Er was eens een prestatiehit voor het gebruik van een wisselbestand in vergelijking met een wisselpartitie. Dat is niet langer het geval met verbeteringen in de prestaties van mechanische (draaiende) harde schijven en meer efficiëntie in de swap-functies binnen het Linux-besturingssysteem. In feite maken sommige Linux-distributies nu standaard swap-bestanden in plaats van swap-partities.

Swap wordt niet alleen gebruikt als een manier om RAM vrij te maken als je weinig geheugen hebt. Het is een belangrijk onderdeel van een goed werkend systeem. Zonder enige ruil wordt gezond geheugenbeheer erg moeilijk voor de kernel om te bereiken. Laten we eens kijken naar de gemakkelijke manier om wat swapspace toe te voegen.

Voordat we erin duiken: Btrf’s en SSD’s

Er zijn twee punten die we graag kort willen bespreken.

Het Btrfs-bestandssysteem heeft bepaalde kanttekeningen bij wisselbestanden. Op een bepaald moment was er een conflict tussen de copy-on-write-aard van Btrfs, die op de ene manier wilde werken en bestanden uitwisselen die op een andere manier moesten werken. Sommige functies waarvan de wisselbestanden afhankelijk zijn, werden niet geïmplementeerd, en sommige aannames die werden gedaan over bloknummering binnen de wisselbestanden, gingen niet op voor Btrfs. Swap-bestanden werden dus niet ondersteund.

Sinds kernel 5.0 kun je bestanden uitwisselen in Btrfs-bestandssystemen als ze zijn ingesteld met de volgende vereisten:

  • Geen copy-on-write (NOCOW) -bestanden.
  • Ze zijn niet gecomprimeerd.
  • Ze staan ​​niet verspreid over verschillende harde schijven.

De meeste lezers zullen het standaard ext4-bestandssysteem gebruiken, dus dit is voor hen geen probleem.

VERWANT: Welk Linux-bestandssysteem moet u gebruiken?

Toen Solid State Drives (SSD’s) voor het eerst beschikbaar waren, was er bezorgdheid over het gebruik ervan in situaties waarin regelmatig naar het bestandssysteem werd geschreven. Mensen werden gewaarschuwd om geen swapspace op SSD’s te zetten en zelfs om systeemlogging naar SSD’s te vermijden.

Dit is tegenwoordig veel minder zorgwekkend, en veel SSD’s die te koop zijn, hebben een levensverwachting die de meeste pc’s zal overleven. Een wisselbestand op een SSD levert veel betere prestaties dan een wisselpartitie op een mechanische harde schijf.

VERWANT: Hoe lang gaan solid-state drives echt mee?

Bestaande swapruimte controleren

Kijk voordat je springt. Laten we eens kijken welke swapruimte beschikbaar is op uw computer. U kunt dit op twee manieren doen, en we zullen beide gebruiken. De free commando zal het gebruikte en vrije geheugen weergeven. De -h (door mensen leesbare) optie zal veroorzaken free om verstandige eenheden te gebruiken wanneer het de geheugenwaarden weergeeft.

free -h

fre -h in een terminalvenster

De output van free laat zien dat er geen swapspace geconfigureerd is op deze machine.

Swap wordt nooit besproken zonder dat RAM en gratis RAM opduiken. Het is dus vermeldenswaard dat het vrije RAM-geheugen 237 MB is. Verwar dat niet met het totale beschikbare RAM-geheugen. Die waarde wordt geleverd door het “beschikbare” cijfer, dat is 881 MB.

Linux gebruikt gratis RAM voor zijn eigen doeleinden, zoals caching van bestanden en kernelbuffers. De hoeveelheid RAM die daarvoor bestemd is, is het “buff / cache” -cijfer, dat is 871 MB. Maar die herinnering wordt nog steeds beschouwd als – en geteld als – ‘beschikbaar’. De inhoud van het “buf / cache” RAM-geheugen kan onmiddellijk worden verwijderd en gebruikt door elke toepassing die geheugen nodig heeft.

Een andere manier om te controleren of swapruimte beschikbaar is, is door de swapon opdracht. De --show optie brengt geen wijzigingen aan in de swap op uw computer. Het geeft alleen statistieken.

swapon --show

swapon --show in een terminalvenster

Als er geen uitvoer is van deze opdracht, is er geen swap geconfigureerd.

Als deze commando’s hadden aangetoond dat er al swapruimte is geconfigureerd, moet de grootte van de bestaande swapruimte worden meegenomen in beslissingen over de grootte van het swapbestand dat je gaat maken.

Hoeveel swapruimte heb ik nodig?

De traditionele reactie was “tweemaal de hoeveelheid RAM die je hebt”. Maar dit werd bedacht toen computers een zeer beperkt RAM-geheugen hadden. Omdat RAM goedkoper is geworden en programma’s en games meer geheugen eisen, zijn de pc-specificaties dienovereenkomstig aangepast. Thuis-pc’s met 32 ​​GB RAM zijn tegenwoordig niet ongewoon. En je gaat geen 64 GB ruimte op de harde schijf toewijzen om ruimte te wisselen als je 32 GB RAM hebt. Dat is duidelijk overdreven.

De hoeveelheid ruil die je nodig hebt, is als een opruiend onderwerp vergelijkbaar met ‘wat is de beste editor’. Een van de meest verstandige discussies die we over dit onderwerp hebben gezien, is in de Ubuntu-swap FAQ. Het is een korte en logische benadering (hoewel ze, zoals veel mensen, niet begrijpen hoe swappiness werkt op Linux). Er is een handige tabel met een aanbevolen hoeveelheid swapruimte voor de hoeveelheid RAM die uw systeem heeft, en of u uw computer in slaapstand zet of niet.

En het goede nieuws is dat het niet echt uitmaakt welke waarde u kiest. We kunnen altijd een wisselbestand verwijderen en vervangen door een groter of, wat dat betreft, een kleiner bestand. Of u kunt gewoon nog een wisselbestand toevoegen.

Kies de grootte van een wisselbestand uit de tabel en laat het een tijdje draaien. Houd het gebruik van de swapspace door uw systeem in de gaten. Als fijnafstemming vereist is, kunnen wijzigingen eenvoudig worden aangebracht. Met wisselbestanden is het een klus van twee minuten. Vergelijk dat eens met het aanpassen van partities op een live Linux-computer.

VERWANT: Wat is swappiness op Linux? (en hoe u dit kunt wijzigen)

Het wisselbestand maken

U mag de fallocate commando om je wisselbestand te maken. Dit is van de man-pagina voor swapon:

The swap file implementation in the kernel expects to be able to write to
the file directly, without the assistance of the file system. 

This is a problem on files with holes or on copy-on-write files on file 
systems like Btrfs. Commands like cp(1) or truncate(1) create files with 
holes. These files will be rejected by swapon. 

Preallocated files created by fallocate(1) may be interpreted as files 
with holes too depending of the filesystem. Preallocated swap files are 
supported on XFS since Linux 4.18. 

The most portable solution to create a swap file is to use dd(1) and 
/dev/zero.

Dus, hoewel fallocate is sneller, we zullen gebruiken dd om het wisselbestand te maken. De machine die is gebruikt om dit artikel te onderzoeken, heeft twee GB RAM. We gaan een wisselbestand van één GB maken.

De mogelijkheden zijn:

  • als: Het invoerbestand. In dit voorbeeld gebruiken we /dev/zero wat een stroom van nul bytes oplevert.
  • van: Het uitvoerbestand. We gaan een bestand maken in de hoofdmap, genaamd swapfile.
  • bs: De blokgrootte in bytes. Dit specificeert hoeveel bytes er tegelijkertijd uit het invoerbestand moeten worden gelezen en naar het uitvoerbestand moeten worden geschreven.
  • tellen: Hoeveel blokken moeten worden gelezen en geschreven. Vermenigvuldig dit getal met de bs waarde om de bestandsgrootte te krijgen.
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576

sudo dd if = / dev / zero of = / swapfile bs = 1024 count = 1048576 in een terminalvenster

Sommige statistieken worden verstrekt wanneer het bestand wordt gemaakt.

uitvoer van sudo dd if = / dev / zero of = / swapfile bs = 1024 count = 1048576 in een terminalvenster

We kunnen het aantal blokken (records) zien dat naar het bestand is geschreven, de grootte van het bestand, de tijd die nodig is om het bestand te maken en de effectieve gegevensoverdrachtsnelheid.

Gebruik de ls commando om het bestand in de hoofdmap te zien:

ls /

ls / in een terminalvenster

Het wisselbestand voorbereiden

We moeten het wisselbestand voorbereiden met de mkswap commando voordat het kan worden gebruikt. We hoeven geen parameters op te geven voor mkswap anders dan het pad en de naam van het bestand:

sudo mkswap /swapfile

sudo mkswap / swapfile in een terminalvenster

Het bestand is voorbereid voor gebruik als wisselbestand. Let op de waarschuwing over bestandsrechten. We zullen deze moeten wijzigen zodat de rootgebruiker de enige is die het wisselbestand kan lezen en ernaar kan schrijven.

Met behulp van het wisselbestand

De standaardrechten zijn te liberaal, we moeten ze beperken zodat alleen root de swapfile kan gebruiken. Gebruik chmod om de bestandsrechten te wijzigen:

sudo chmod 600 /swapfile

sudo chmod 600 / swapfile in een terminalvenster

Hiermee worden alle machtigingen van de bestandsgroepleden en anderen verwijderd, maar kan de bestandseigenaar, root, het bestand lezen en ernaar schrijven.

VERWANT: Hoe de chmod-opdracht op Linux te gebruiken

We moeten de swapon commando om Linux te laten weten dat er een nieuw wisselbestand beschikbaar is om te gebruiken. We hoeven alleen het pad en de bestandsnaam op te geven:

sudo swapon /swapfile

sudo swapon / swapfile in een terminalvenster

Het wisselbestand is nu actief.

Het wisselbestand toevoegen aan fstab

Om er zeker van te zijn dat uw wisselbestand beschikbaar is na het opnieuw opstarten, voegt u het toe aan het /etc/fstab het dossier. U kunt elke gewenste teksteditor gebruiken, maar we laten het proces zien met de grafische Gedit-teksteditor.

sudo gedit /etc/fstab

sudo gedt / etc / fstab in een terminalvenster

De regel die we onderaan het bestand moeten toevoegen, is:

/swapfile    none    swap    sw    0    0

/ etc / fstab met het swapfile-item gemarkeerd

De velden zijn:

  • Bestandssysteem: Het pad en de naam van het wisselbestand.
  • koppelpunt: Het bestand is niet aangekoppeld als een bestandssysteem, dus de invoer is “geen”.
  • Type: Dit is “ruilen”.
  • Opties: Tijdens het opstarten swapon -a (start alle apparaten die zijn gemarkeerd als swap) zullen worden aangeroepen vanuit een van de opstartscripts. Deze optie vertelt Linux om dit item te behandelen als een ruilmiddel dat onder de controle zou moeten komen te staan swapon -a opdracht. Het is gebruikelijk om hier “standaardinstellingen” te zien, omdat er een verkeerde overtuiging is onder sommige Linux-gebruikers dat dit veld wordt genegeerd. Zoals we zullen zien, is dat niet het geval. Het is dus logisch om de juiste optie te gebruiken.
  • Dump: Dit kan op nul worden gezet. Het is in dit geval niet relevant.
  • Voorbij gaan aan: Dit kan op nul worden gezet. Het is in dit geval niet relevant.

Sla de wijzigingen op en sluit de editor.

VERWANT: Hoe een fstab-bestand op Linux te schrijven

Wisselgebruik controleren

Om te zien of uw swapruimte in gebruik is, gebruikt u de swapon commando met de --show optie:

swapon --show

swapon --show in een terminalvenster

De kolommen zijn:

  • Naam: De naam van de wisselpartitie of het wisselbestand.
  • Type: Het type wisselapparaat.
  • Grootte: De grootte van de wisselresource.
  • Gebruikt: De hoeveelheid gebruikte swapruimte.
  • Prio: De prioriteit van deze swapruimte.

De prioriteit van Swap Space

Elke swapruimte krijgt een prioriteit toegewezen. Als u er geen opgeeft, wordt er automatisch een toegewezen. Automatisch toegewezen prioriteiten zijn altijd negatief. Het bereik van prioriteiten dat handmatig kan worden toegewezen is 0 tot 32767. Ruilmiddelen met hogere prioriteiten worden eerst gebruikt.

Als meer dan één swapspace dezelfde prioriteit heeft, worden ze afwisselend gebruikt totdat ze allebei vol zijn, dan zoekt het systeem naar de swapspace met de eerstvolgende laagste prioriteit. Als je maar één swapspace hebt, is de prioriteit natuurlijk niet relevant. Maar we zullen de prioriteit van de swapfile die we hebben gemaakt wijzigen om te laten zien hoe je het moet doen.

Om een ​​prioriteit in te stellen, voegt u het pri= (prioriteit) optie naar de /etc/fstab binnenkomst. Bewerk de regel waaraan u heeft toegevoegd /etc/fstab om er zo uit te zien:

/swapfile    none    swap    sw,pri=10    0    0

Dat wil zeggen, toevoegen pri=10 naar het optieveld, gescheiden van de “sw” door een komma. Laat geen spaties tussen de “sw”, de komma en de “pri = 10”. Start uw computer opnieuw op en gebruik de swapon --show opdracht:

swapon -- show

swapon - toon in een terminalvenster

De prioriteit van deze swapspace is verhoogd naar 10. Dat is een positief bewijs dat het optieveld in het /etc/fstab invoer wordt niet genegeerd.

Wissel ruimte gemakkelijk gemaakt

Door de uiteenzetting en uitleg te snijden, kunnen we zo gemakkelijk en snel een nieuw wisselbestand maken als dit:

sudo dd if=/dev/zero /of=/swapfile2 bs=1024 count=104857
sudo mkswap /swapfile2
sudo chmod 600 /swapfile2
sudo swapon /swapfile2

En laten we eens kijken of het werkte:

swapon --show

sudo dd if = / dev / zero / of = / swapfile2 bs = 1024 count = 104857 in een terminalvenster

Als je die permanente druppel wilt maken, het in je /etc/fstab het dossier.

Boom. Klus geklaard.

Nieuwste artikelen

spot_img

Related Stories

Leave A Reply

Vul alstublieft uw commentaar in!
Vul hier uw naam in