Sådan frigøres Linux-buffere og cacher



Prøv Vores Instrument Til At Fjerne Problemer

Brugere vil muligvis frigøre Linux-buffer og cache-plads, hvis de mener, at det tager for meget plads i RAM. Dette skyldes normalt, at de er vant til Windows- eller Macintosh-miljøer, der ikke cache så aggressivt. Dette kan faktisk reducere ydeevnen. Det er dog en god ide at synkronisere RAM og disklagring, hvilket også ofte betragtes som at frigøre Linux-caches, selvom det ikke er fra et meget teknisk synspunkt.



Du skal arbejde fra en terminal for denne teknik. Søg efter terminal på Ubuntu Dash eller hold Ctrl, Alt og T nede på samme tid. LXDE-, Xfce4- og KDE-brugere vil muligvis klikke på menuen Applikationer eller Whisker, pege på Systemværktøjer og åbne Terminal.



Metode 1: Brug af sync-kommandoen

I mange tilfælde vil brugerne faktisk synkronisere cachelagrede skrivninger til den underliggende vedvarende lagerenhed, der indeholder data. Dette betyder, at eventuelle ændringer, der foretages i filbufferne i hukommelsen, får en opdatering på disken, så hvis systemet gik ned derefter og der, ville du have en god chance for at have alt aktuelt. Hvis dette koncept virker lidt avanceret, så husk bare, at dette gør oplysningerne i din RAM de samme som oplysningerne på din disk eller SSD.



At påberåbe sig synkroniseringskommandoen uden andre argumenter gør netop det. Den opdaterer filer på disken med eventuelle ændringer, der venter på at blive skrevet. Type synkronisere på kommandolinjen og tryk enter. Du kan slet ikke se nogen output, og du kan gøre det, når en kommando blev kørt før den.

Denne metode er utrolig enkel, da den kun kræver, at du kun lærer et ord. I modsætning til andre metoder er det altid sikkert at gøre det og reducerer ikke ydeevnen undtagen de få øjeblikke, mens synkroniseringen til disken finder sted. Hvis du har flyttet en masse filer mellem eksterne drev og vil sikre dig, at alle skrivninger er udført, skal du frigøre Linux-buffere ved at skrive synkronisering og trykke på enter. Alle andre metoder er strengt til at lave benchmarks. Hvis du nogensinde har hørt nogen tale om beskidte sektorer, er dette en løsning på dette problem. Linux holder undertiden filer i hukommelsen, men fortæller resten af ​​operativsystemet, at de er på disken, men at køre synkronisering sikrer, at disse ændringer også opdateres på disken. Det fjerner dem ikke fra RAM, så de bliver stadig tilbudt til andre programmer, der har brug for at få adgang til dem uden at bremse tingene.



Metode 2: Gratis Linux-buffere fuldstændigt

Husk, før du går videre, at metode 1 næsten altid foretrækkes, da Linux cacher aggressivt med vilje for at få din enhed til at bevæge sig hurtigere. Du vil næsten altid bare køre synkronisering af sikkerhedsmæssige årsager for at sikre, at alle diskskrivninger er gennemført. Hvis du prøver at udføre et hardware-benchmark eller noget af den slags, er der en måde at frigøre Linux-caches helt på.

Forudsat at du fuldt ud forstår faren ved at gøre dette, skal du løbe gratis && sync && echo 3> / proc / sys / vm / drop_caches && free i terminalen. Da det er så lang kommando, vil du måske fremhæve det her og kopiere det. For at indsætte det i terminalen skal du enten bruge indstillingen Indsæt i menuen Rediger eller i modsætning til synkronisering i sig selv skal du køre dette fra en rodprompt. Sæt sudo foran kommandoen, hvis du er logget ind som en almindelig bruger. Denne linje sikrer, at du ser output, der indikerer, at hukommelsescacherne faktisk bliver tømt.

Endnu en gang er den eneste grund til, at du nogensinde vil gøre dette, at tage benchmarks. Du bemærker muligvis et ægte præstationshit, når du har gjort dette, da du tømmer alle de data, Linux arbejdede hårdt for at cache. Du kan også deaktivere swap ved at skrive sudo swapoff -a og genaktiver det med sudo swapon -a , men igen har disse brug for rootadgang, og den eneste gang du nogensinde vil gøre dette, er hvis du var en udvikler, der forsøgte at tage ægte hardware-benchmarks til et hjælpeprogram eller en filsystemproces. Alle andre vil simpelthen køre synkronisering af sig selv som en almindelig bruger uden rodadgang for at sikre, at alle de beskidte sektorer er skrevet ud til disken.

3 minutter læst