Het toevoegen van swapruimte aan uw server is een uitstekende optie om out-of-memory-fouten te compenseren. Linux stelt gebruikers in staat om swapruimte aan hun systeem toe te voegen wanneer de hoeveelheid RAM in het systeem vol is. Wanneer u een speciale partitie aanmaakt, zorgt u ervoor dat uw fysieke geheugen soepel kan werken zonder dat u zich veel zorgen hoeft te maken over weinig schijfruimte.
Swap-overzicht
Swapruimte in Linux is een deel van het virtuele geheugen van een machine dat wordt gebruikt wanneer het fysieke geheugen vol is. Vooral bij het werken met een groot programma of een grote applicatie waarbij behoefte is aan extra geheugen, is swapruimte een ideale keuze om tijdelijk inactieve geheugenpagina's op te slaan. Het aanmaken van swapruimte stelt gebruikers in staat om gegevens op te slaan wanneer grote programma's draaien en vermindert zo het vastlopen van applicaties. Dit betekent dat als het systeem meer geheugenbronnen nodig heeft en het RAM-geheugen vol is, alle inactieve pagina's in het geheugen naar de swapruimte worden verplaatst en de programma's ononderbroken kunnen blijven draaien.
Hoeveel swapruimte heb ik nodig?
De hoeveelheid swapruimte hangt af van verschillende factoren. Waaronder het beschikbare RAM-geheugen, de belasting en of het systeem de slaapstandfunctie (suspend-to-disk) moet ondersteunen. Raadpleeg de onderstaande tabel om de aanbevolen swapruimte te controleren op basis van de beschikbare ruimte in het RAM-geheugen:
|
Nr. |
Beschikbare RAM-ruimte |
Aanbevolen swapruimte |
|
1. |
1GB |
1GB |
|
2. |
2GB |
1GB |
|
3. |
3GB |
2GB |
|
4. |
4GB |
2GB |
|
5. |
5GB |
2GB |
|
6. |
6GB |
2GB |
|
7. |
8GB |
3GB |
In deze handleiding zullen we u door de stappen leiden voor het toevoegen van swapruimte op Ubuntu 20.04. Laten we beginnen!
Vereisten
Om deze handleiding te kunnen volgen, heeft u het volgende nodig:
- Ubuntu geïnstalleerd op uw systeem.
- Niet-root gebruikersaccount ingesteld met sudo-privileges op uw machine.
Stap 1: Controle van swap-informatie
De grootte van de swapruimte hangt af van het RAM-geheugen van het systeem. Daarom is het essentieel om de beschikbaarheid van swapruimte in uw systeem te controleren voordat u er een aanmaakt. Typ de onderstaande opdracht om te controleren of het systeem een geconfigureerde swap heeft:
|
1 |
$ sudo swapon --show |
Als er uitvoer wordt weergegeven, betekent dit dat er ruimte beschikbaar is in uw systeem om swapruimte te maken. Geen uitvoer is echter een signaal dat er niet genoeg beschikbare ruimte is om swapruimte toe te voegen.
Gebruik het hulpprogramma free om te controleren of er geen actieve swap is:
|
1 |
$ free -h |
U ziet de uitvoer als een lege swap-rij:
Stap 2: Controle van de beschikbaarheid van de harde schijfpartitie
Net als bij het controleren van de systeembeschikbaarheid, gaan we nu ons huidige schijfgebruik controleren om er zeker van te zijn dat we genoeg ruimte hebben. Gebruik de opdracht df om de beschikbaarheid van de harde schijfpartitie te controleren:
|
1 |
df -h |
Het apparaat met / in de kolom Aangekoppeld op is onze schijf die 11% vrij is. U ziet de uitvoer:
Na het controleren van de systeemvereisten, gaan we verder en maken we een swapbestand aan op ons bestandssysteem.
Step 3: Create a Swap File
Om een swapbestand op ons bestandssysteem aan te maken, wijst u een bestandsnaam toe als swapfile in de rootmap (/) met behulp van het programma fallocate. Het toewijzen van een bestandsgrootte hangt af van uw behoeften. Om de handleiding eenvoudig en gemakkelijk te begrijpen te houden, maken we een bestand van 1G aan en wijzen we 1G aan RAM toe. Gebruik de opdracht sudo om een swapbestand aan te maken:
|
1 |
sudo fallocate -l 1G /swapfile |
Typ vervolgens deze opdracht om de gereserveerde ruimte te controleren:
|
1 |
$ ls -lh /swapfile |
Nu we een swapruimte in ons systeem hebben aangemaakt, gaan we deze in de volgende stap inschakelen.
Stap 4: Het swapbestand inschakelen
Zodra we de juiste grootte beschikbaar hebben, gaan we deze converteren naar swapruimte. Om veiligheidsredenen is het cruciaal om ons bestand toegankelijk te maken voor root-gebruikers en toegankelijkheid voor normale gebruikers te voorkomen. We voegen beperkingen toe zodat gebruikers met root-privileges het bestand kunnen bekijken en de inhoud ervan kunnen lezen. Gebruik de volgende root-opdracht om het bestand alleen toegankelijk te maken voor root-gebruikers:
|
1 |
sudo chmod 600 /swapfile |
Gebruik vervolgens de opdracht ls om de wijzigingen te controleren:
|
1 |
$ ls -lh /swapfile |
Zoals u kunt zien, heeft alleen de root-gebruiker de lees- en schrijfrechten ingeschakeld:
Markeer daarna het bestand als swapruimte:
|
1 |
sudo mkswap /swapfile |
U ziet de uitvoer:
Schakel daarna het swap-bestand in en sta ons systeem toe om het te gaan gebruiken:
|
1 |
sudo swapon /swapfile |
Controleer vervolgens de beschikbaarheid van de swap:
|
1 |
$ sudo swapon --show |
Je ziet de uitvoer:
Net als in Stap 1, controleren we de free utility-ruimte nog een keer:
|
1 |
free -h |
Je ziet de uitvoer:
Onze swap is succesvol ingesteld en ons besturingssysteem zal deze indien nodig gaan gebruiken. In de volgende stap maken we het swap-bestand permanent.
Stap 5: Maak het swap-bestand permanent
Standaard behoudt de server de swap-instellingen niet automatisch wanneer we opnieuw opstarten. Om de standaardinstellingen te wijzigen en het zekere voor het onzekere te nemen, voegen we het swap-bestand toe aan ons /etc/fstab-bestand. Gebruik het sudo-commando om een back-up te maken van het /etc/fstab-bestand:
|
1 |
sudo cp /etc/fstab /etc/fstab.bak |
Voeg vervolgens de swap-bestandsinformatie toe aan het einde van je /etc/fstab-bestand door het volgende te typen:
|
1 |
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab |
Laten we daarna enkele instellingen bekijken en wijzigingen aanbrengen, zodat we onze swap-ruimte kunnen optimaliseren.
Stap 6: Swap-instellingen wijzigen
In deze stap configureren we de instellingen en brengen we enkele wijzigingen aan. Laten we de swappiness-eigenschap aanpassen en de cache-druk wijzigen.
-
De Swappiness-eigenschap aanpassen
De swappiness-parameter is een aanpasbare kernelparameter. Het verandert de balans tussen het swappen van runtime-geheugen en regelt de uitwisseling van gegevens tussen het swappen van gegevens uit het RAM naar de swap-ruimte. Deze parametrische waarde wordt uitgedrukt in een percentage, variërend van 0 tot 100.
De vm.swappiness-waarde heeft een directe invloed op het gedrag van de systeem-swappiness. Hoe hoger de vm.swappiness, hoe meer het systeem zal swappen en vice versa. Als de waarde dicht bij nul ligt, zal de kernel geen gegevens swappen, wat kan leiden tot prestatievermindering. Je systeem toestaan om niet te veel afhankelijk te zijn van de swap is een uitstekende manier om de prestaties te verbeteren en een robuuste reactiesnelheid te verkrijgen.
Als alternatief probeert een vm.swappiness die dichter bij 100 ligt, meer gegevens in de swap te plaatsen en minder in het fysieke geheugen. In tegenstelling tot de lage tot matige vm.swappiness-waarde, heeft een hoge mate van systeem-swapping zeer ongewenste effecten wanneer er grote hoeveelheden gegevens actief in en uit het RAM worden geswapt.
Controleer de huidige swappiness-waarde door het volgende te typen:
|
1 |
cat /proc/sys/vm/swappiness |
Je ziet de uitvoer:
Je kunt ook de swappiness van je keuze instellen met behulp van het sysctl-commando. Laten we de swappiness-waarde instellen op 15 door het volgende te typen:
|
1 |
sudo sysctl vm.swappiness = 15 |
Je ziet de uitvoer:
Totdat het systeem opnieuw wordt opgestart, blijven de instellingen zoals ze zijn. Voeg de regel toe aan ons /etc/sysctl.conf-bestand om de waarde automatisch in te stellen bij een herstart:
|
1 |
sudo nano /etc/sysctl.conf |
Je kunt de volgende code onderaan toevoegen:
|
1 |
Vm.swappiness = 15 |
Sla vervolgens het bestand op en sluit het.
-
De Cache Pressure aanpassen
Vervolgens gaan we vfs_cache_pressure aanpassen, wat zorgt voor inode en dentry-informatie boven andere gegevens. Deze vfs_cache_pressure-instellingen regelen ook de neiging van de kernel om het geheugen terug te vorderen dat wordt gebruikt voor het cachen van de directory. Navigeer opnieuw naar het proc-bestandssysteem om de huidige waarde te controleren:
|
1 |
cat /proc/sys/vm/vfs_cache_pressure |
Je ziet de uitvoer:
Aangezien de configuratie al is voltooid, zal ons systeem de inode-informatie uit de cache verwijderen. Laten we de sysctl vm.vfs_cache_pressure instellen op een stabielere waarde zoals deze:
|
1 |
sudo sysctl vm.vfs_cache_pressure = 60 |
Je ziet de uitvoer:
Vergelijkbaar met wat we hebben gedaan bij onze swappiness-instelling, kunnen we de configuratie hier ook wijzigen:
|
1 |
sudo nano /etc/sysctl.conf |
Voeg onderaan een regel toe die de nieuwe waarde aangeeft die je hebt gemaakt:
|
1 |
Vm.vfs_cache_pressure = 60 |
Sla ten slotte het bestand op en sluit het.
Conclusie
Je kunt swapruimte toevoegen als een speciale swappartitie, een swapbestand of een combinatie van beide. Je kunt swapruimte maken en de voordelen ervan benutten om applicaties naadloos uit te voeren zonder je veel zorgen te hoeven maken over out-of-memory-waarschuwingen. Hoewel het maken van swapruimte een extra voordeel is in systemen met een beperkte hoeveelheid geheugen, mag het niet worden gezien als een alternatief voor meer RAM-geheugen. Onthoud dat swapruimte zich op een harde schijf bevindt, waardoor je mogelijk een iets tragere toegangstijd ervaart in vergelijking met fysiek geheugen.
Hier zijn meer handleidingen op onze blog die je helpen aan de slag te gaan met je Ubuntu-servers:
- Een NFS-mount instellen op Ubuntu 20.04
- Nginx installeren op Ubuntu 18.04
- Een firewall configureren met UFW op Ubuntu 18.04
Veel computerplezier!










Reacties
Nog geen reacties. Wees de eerste.