Hoe Linux-buffers en caches te bevrijden



Probeer Ons Instrument Voor Het Oplossen Van Problemen

Gebruikers willen misschien Linux-buffer en cacheruimte vrijmaken als ze denken dat dit te veel RAM-ruimte in beslag neemt. Dit komt meestal doordat ze gewend zijn aan Windows- of Macintosh-omgevingen die niet zo agressief cachen. Hierdoor kunnen de prestaties zelfs afnemen. Het is echter een goed idee om RAM en schijfopslag te synchroniseren, wat ook vaak wordt beschouwd als het vrijmaken van Linux-caches, ook al is dit niet vanuit een erg technisch standpunt.



Voor deze techniek moet u vanaf een terminal werken. Zoek naar terminal op de Ubuntu Dash of houd Ctrl, Alt en T tegelijkertijd ingedrukt. LXDE-, Xfce4- en KDE-gebruikers willen misschien klikken op het menu Toepassingen of Whisker, naar Systeemwerkset wijzen en Terminal openen.



Methode 1: de synchronisatieopdracht gebruiken

In veel gevallen willen gebruikers schrijfbewerkingen in de cache synchroniseren met het onderliggende permanente opslagapparaat dat gegevens bevat. Dit betekent dat alle wijzigingen die in de bestandsbuffers in het geheugen worden aangebracht, een update op schijf krijgen, dus als het systeem op dat moment uitvalt, heb je een goede kans dat alles actueel is. Als dit concept een beetje geavanceerd lijkt, onthoud dan dat dit de informatie in uw RAM hetzelfde maakt als de informatie op uw schijf of SSD.



Het aanroepen van de sync-opdracht zonder enige andere argumenten doet precies dat. Het werkt bestanden op schijf bij met eventuele wijzigingen die wachten om te worden geschreven. Type synchroniseren op de opdrachtregel en druk op enter. U zult helemaal geen uitvoer zien en u kunt het doen nadat een willekeurige opdracht ervoor is uitgevoerd.

Deze methode is ongelooflijk eenvoudig omdat u maar één woord hoeft te leren. In tegenstelling tot andere methoden is het altijd volkomen veilig om dit te doen en worden de prestaties niet verminderd, behalve in de korte tijd dat de synchronisatie naar schijf plaatsvindt. Als je een heleboel bestanden tussen externe schijven hebt verplaatst en zeker wilt weten dat alle schrijfbewerkingen zijn voltooid, maak dan Linux-buffers vrij door sync te typen en op enter te drukken. Alle andere methoden zijn strikt bedoeld voor het maken van benchmarks. Als je ooit iemand hebt horen praten over vuile sectoren, dan is dit een oplossing voor dat probleem. Linux bewaart soms bestanden in het geheugen, maar laat de rest van het besturingssysteem weten dat ze op schijf staan, maar door synchronisatie uit te voeren, worden deze wijzigingen ook op schijf bijgewerkt. Het verwijdert ze niet uit het RAM, dus ze worden nog steeds aangeboden aan andere programma's die er toegang toe moeten hebben zonder de zaken te vertragen.



Methode 2: gratis Linux-buffers volledig

Houd er rekening mee dat voordat je verder gaat, Methode 1 bijna altijd de voorkeur heeft, omdat Linux expres agressief caches om je apparaat sneller te laten bewegen. U wilt bijna altijd synchronisatie uitvoeren om veiligheidsredenen om er zeker van te zijn dat alle schrijfbewerkingen op de schijf zijn voltooid. Als je een hardwarebenchmark of iets dergelijks probeert uit te voeren, is er een manier om Linux-caches volledig vrij te maken.

Ervan uitgaande dat u het gevaar hiervan volledig begrijpt, ren dan gratis && sync && echo 3> / proc / sys / vm / drop_caches && gratis in de terminal. Omdat het zo'n lang commando is, wil je het hier misschien markeren en kopiëren. Om het in de terminal te plakken, gebruikt u de optie Plakken in het menu Bewerken of In tegenstelling tot synchronisatie op zichzelf, moet u dit uitvoeren vanaf een root-prompt. Zet sudo voor de opdracht als u bent aangemeld als een gewone gebruiker. Deze regel zorgt ervoor dat u uitvoer ziet die aangeeft dat de geheugencaches daadwerkelijk worden geleegd.

Nogmaals, de enige reden waarom u dit ooit zou willen doen, is door benchmarks te nemen. Je merkt misschien een echte prestatiehit als je dit eenmaal hebt gedaan, omdat je alle gegevens leegmaakt die Linux hard heeft gewerkt om te cachen. U kunt swap ook uitschakelen door te typen sudo swapoff -a en schakel het opnieuw in met sudo swapon -a , maar nogmaals, deze hebben root-toegang nodig en de enige keer dat je dit ooit zou willen doen, is als je een ontwikkelaar was die echte hardwarebenchmarks probeerde te gebruiken voor een hulpprogramma of bestandssysteemproces. Alle anderen willen gewoon de synchronisatie zelf uitvoeren als een gewone gebruiker zonder root-toegang om ervoor te zorgen dat alle vuile sectoren naar schijf worden geschreven.

3 minuten gelezen