In deze tutorial leren we hoe we de RAM-cache in Linux kunnen wissen en Swap-ruimte kunnen opschonen.
Net als alle andere besturingssystemen heeft GNU/Linux ook een geheugenbeheersysteem geïmplementeerd. Hoewel het geheugenbeheer van Linux veel efficiënter is en zelfs veel gebruikt wordt dan bij andere besturingssystemen. Echter, in sommige gevallen waarin u het geheugenbeheer wilt controleren of als er een of meer processen zijn die het RAM-geheugen van uw systeem in beslag nemen. In zo’n geval willen we er een einde aan maken; Linux biedt enkele manieren om te spoelen (ramcache wissen).
Hoe cache wissen in Linux?
Bijna op elk Linux-systeem zijn er drie methoden beschikbaar om de cache te wissen. Sommige hiervan kunnen opmerkelijk worden gebruikt zonder lopende processen of services te onderbreken. De drie manieren zijn als volgt:
- Alleen PageCache wissen
- Duidelijke dentries en inodes
- Wis dentries en inodes, Wis PageCache
We zullen alle drie de methoden in detail bespreken en ook hun praktische implementatie bekijken:
1. Wis alleen PageCache-
Deze methode is een van de veiligste manieren om de cache van Linux op te schonen, omdat deze de cache kan wissen zonder lopende bewerkingen, applicaties en services te beëindigen. Er wordt gezegd dat dit de veiligste manier is om de cache op te schonen, aangezien deze in productie kan worden gebruikt en alleen de PageCache wordt opgeschoond. Bij deze methode worden de volgende opdrachten gebruikt:
Commando
# sync ; echo 1 > proc/sys/vm/drop_caches
Uitleg:
In het bovenstaande commando wordt de ' synchroniseren ' wordt gebruikt voor het leegmaken van de bestandssysteembuffer, en de opdracht wordt gescheiden met ' ; 'opeenvolgende wijze uitgevoerd.
De shell wacht echter tot elk commando is uitgevoerd of beëindigd voordat het volgende commando in de reeks wordt uitgevoerd.
De drop_caches worden gebruikt voor het leegmaken of opschonen van de cache zonder andere actieve applicaties of services te doden of te beïnvloeden, zoals ook duidelijk wordt vermeld in de Kerneldocumentatie. De ' echo ' commando doet het werk van het schrijven naar bestanden.
Stappen om de PageCache te wissen met behulp van Terminal:
Stap 1 - Open de Terminal in Linux en typ de volgende gegeven opdracht en druk op Enter. Zodra de opdracht wordt uitgevoerd, wordt de informatie over het systeemgeheugen weergegeven, zoals weergegeven in het voorbeeld:
Commando
dereferentiewijzer
free
De bovenstaande opdracht wordt gebruikt om weer te geven hoeveel geheugen wordt gebruikt en om andere factoren weer te geven, zoals totaal beschikbaar geheugen, wisselgeheugen, enz. We kunnen dit gebruiken ' vrij ' commando net voor en na het gebruik van elke methode.
Het is noodzakelijk om de opdracht 'gratis' te gebruiken voor en na het uitvoeren van de eigenlijke opdracht, zodat we gemakkelijk veranderingen in de geheugentoewijzing kunnen zien of detecteren. Laten we een voorbeeld bekijken om te begrijpen hoe het hele proces eigenlijk werkt:
Voorbeeld
2. Duidelijke dentries en inodes-
Deze methode wordt gebruikt om het geheugen van dentries en inodes te wissen. Het is net als de eerste methode, maar iets anders, omdat het wordt gebruikt om het geheugen van dentries en inodes te wissen, in plaats van het geheugen van PageCache te wissen. Toch lijkt het veel op de eerste methode die we hierboven hebben besproken. De opdracht die in deze methode wordt gebruikt, wordt hieronder gegeven:
Commando
# sync ; echo 2 > proc / sys / vm / drop_caches
Laten we een voorbeeld bekijken om te begrijpen hoe u deze methode kunt implementeren:
Voorbeeld
3. Wis dentries en inodes, Wis PageCache
Het is een van de meest effectieve methoden. Niettemin wordt het traditioneel niet aanbevolen om het te gebruiken totdat u weet wat u doet, omdat het niet als het veiligste gebruik wordt beschouwd, vooral niet tijdens de productie. Het commando dat in deze methode wordt gebruikt, gebruikt de 'echo 3 >' die tegelijkertijd de PageCache, dentries en inodes opschoont.
Commando:
# sync ; echo 3 > / porc / sys / vm / drop_caches
Om meer details te begrijpen hoe het eigenlijk werkt, overweeg het gegeven voorbeeld:
Voorbeeld:
Opmerking: het wordt niet aanbevolen om het in productie te gebruiken, tenzij je weet wat je doet, omdat het PageCache en dentries onmiddellijk zal opschonen, ook inodes, zoals we hierboven al hebben besproken.
Ruil ruimte
Over het algemeen wordt de swapruimte gebruikt wanneer het gebruik van het fysieke geheugen bijna op zijn hoogtepunt is. Dus wanneer en als het systeem meer geheugenbronnen nodig heeft en de fysieke ram vol raakt, worden alle inactieve pagina's overgebracht naar de swapgeheugenruimte.
De swapgeheugenruimte helpt het systeem echter ook als een kleine maar effectieve hoeveelheid RAM. Toch is het ongetwijfeld niet aan te raden om de Swap Space als de fysieke ram te beschouwen.
Hoe maak je swapruimte vrij in Linux?
Om het swapgeheugen op uw systeem te wissen, hoeft u alleen maar de Swap uit te schakelen. Hierdoor worden alle gegevens uit het swapgeheugen terug naar het RAM verplaatst. Het betekent ook dat u er zeker van moet zijn dat u voldoende RAM in uw systeem heeft om deze bewerking te ondersteunen.
Een gemakkelijke manier om dit te doen is door de 'gratis-m' commando om te zien wat er wordt gebruikt in de Swap, RAM, en schakel vervolgens de Swap uit.
Nadat u de Swap hebt uitgeschakeld, moet u 30 seconden of langer wachten totdat de bewerking is voltooid en vervolgens de Swap weer inschakelen. Hiermee wordt de cache van het swapgeheugen gewist en opnieuw ingeschakeld, maar voordat u de Swap wist, zou u de huidige (of standaard) instelling van uw systeem moeten zien.
Om de huidige instelling van de swappiness van uw systeem te zien, hoeft u alleen maar de terminal te openen en de volgende opdracht te gebruiken, zoals weergegeven in de uitvoer:
cat /proc/sys/vm/swappiness
Uitvoer
Zoals u kunt zien, is de huidige Swappiness-waarde van ons systeem '60' seconden. Als u deze waarde echter wilt wijzigen, kunt u deze ergens tussen 0 en 100 instellen. Het proces van het bewerken (bijwerken) van deze waarde is vrij eenvoudig. Alles, u moet de volgende opdracht in de Terminal typen en op Enter drukken:
Commando:
sudo sysctl vm.swappiness=x
(Hier is x de swapwaarde die we willen instellen)
Zoals u in de bovenstaande uitvoer kunt zien, is de huidige swapwaarde (of standaardwaarde) van ons systeem 60. Laten we proberen de swapwaarde te wijzigen in 40.
1. Open de terminal door op te drukken Ctrl+Alt+T op het toetsenbord.
2. Zodra de terminal wordt geopend, typt u de volgende opdracht en drukt u op Enter, zoals weergegeven in de onderstaande afbeelding:
sudo sysctl vm.swappiness=40
Uitvoer
Opmerking: Mogelijk wordt u gevraagd het wachtwoord in te voeren, omdat we deze opdracht moeten uitvoeren met superUser-rechten (rootgebruiker).
Verificatie
Om te controleren of de swapwaarde succesvol is bijgewerkt, typt u de volgende opdracht en drukt u op de Enter-knop:
cat /proc/sys/vm/swappiness
Uitvoer
Zoals u in de uitvoer kunt zien, hebben we de swapwaarde met succes bijgewerkt naar 40.
Wis ruilruimte
Om de swapruimte vrij te maken, is het proces vrij eenvoudig omdat het gewoon nodig is weg fietsen de Swap, waardoor alle gegevens of inactieve pagina's vanuit de Swap-geheugenruimte terug naar het RAM worden overgebracht. Zodra u de swap verlaat, moet u 30 seconden wachten en moet u opnieuw opstarten of opnieuw naar de swapruimte gaan.
Handige commando's:
Dit zijn enkele basisopdrachten die ons zullen helpen bij het opschonen van de Swap Space:
Stappen om het wisselgeheugen te wissen
Laten we eens kijken hoe we deze opdrachten kunnen gebruiken om swapruimte of geheugen vrij te maken:
Stap 1. Open de terminal door op de ' Ctrl+Alt+T ' op het toetsenbord.
niet
Stap 2. Zodra de Terminal wordt geopend, typt u het ' sudo -ik ' commando omdat we dit misschien nodig hebben superuser-rechten om de hierboven gegeven opdrachten uit te voeren:
Stap 3. Typ de opdracht 'free -m' om het gebruik van het geheugen eerder te bekijken weg fietsen de Ruil :
Stap 4 Typ nu de ' Swapoff-a ' commando en druk op enter om de Swap af te sluiten, zoals hieronder weergegeven:
Stap 5. Na de weg fietsen , wacht de Swap minimaal 40 seconden.
Stap6. Typ nu 'swap-a' en druk op Enter om Swap opnieuw in te schakelen. Om het verschil (of de verandering) in geheugengebruik te zien, voert u de opdracht 'free-m' nog een keer uit, zoals hieronder weergegeven:
Hopelijk helpt dit je het swapgeheugen van je systeem te wissen als je ooit in een dergelijke situatie terechtkomt.