Slik sletter du RAM-minnebuffer, buffer og bytter på Linux


Som alle andre operativsystemer har GNU/Linux implementert minneadministrasjon effektivt og enda mer enn det. Men hvis en prosess spiser bort minnet ditt og du vil tømme det, gir Linux en måte å tømme eller tømme RAM-cachen på.

I denne artikkelen vil vi utforske hvordan du tømmer RAM-minnebuffer, buffer og bytter plass på et Linux-system for å forbedre den generelle ytelsen.

Forstå RAM Memory Cache, Buffer og Swap Space

La oss utforske RAM-minnebuffer, buffer og bytte plass på et Linux-system.

RAM-minnebuffer

RAM-minnebufferen er en mekanisme som brukes av kjernen for å holde regelmessig tilgang til data. Selv om dette øker systemets reaksjonsevne, kan en overbelastet cache føre til oppbevaring av foreldede data, noe som påvirker ytelsen.

Buffer

I likhet med cache, holder bufferen data midlertidig, men har forskjellig formål. Buffere lagrer data som overføres mellom komponenter som CPU og harddisk, noe som letter jevn kommunikasjon. Imidlertid kan et overskudd av bufrede data hindre systemhastigheten.

Bytt plass

Swap plass er et tildelt område på harddisken som fungerer som virtuelt minne når fysisk RAM er oppbrukt. Selv om det forhindrer systemkrasj på grunn av lite minne, kan det bremse systemet hvis det brukes for mye.

Tømme buffer, buffer og bytte plass i Linux

I visse situasjoner må du kanskje tømme bufferen, bufferen eller bytte plass som forklart nedenfor.

Hvordan tømme RAM-minnebuffer i Linux?

Hvert Linux-system har tre alternativer for å tømme hurtigbufferen uten å avbryte noen prosesser eller tjenester.

Tømmer PageCache

1. Bare for å tømme PageCache, kan du bruke følgende kommando, som spesifikt vil tømme PageCache, og hjelper til med å frigjøre minneressurser.

sudo sync; echo 1 > /proc/sys/vm/drop_caches

Fjerning av proteser og inoder

2. For å tømme bare dentries og inodene, kan du bruke følgende kommando, som vil synkronisere filsystemet og fjerne både dentries og inoder, forbedre systemytelsen ved å frigi bufret katalog og inodeinformasjon.

sudo sync; echo 2 > /proc/sys/vm/drop_caches

Sletting av PageCache, Dentries og Inoder

3. For å tømme pagecache, dentries og inodes, kan du bruke følgende kommando, som vil synkronisere filsystemet og tøm sidebufferen, dentries og inodene, noe som bidrar til å frigjøre minne og forbedre systemytelsen.

sudo sync; echo 3 > /proc/sys/vm/drop_caches 

Her er en forklaring på hver del av kommandoen ovenfor:

  • sudo brukes til å utføre kommandoen som en superbruker.
  • sync vil tømme filsystembufferen.
  • “; " semikolon brukes til å skille flere kommandoer på en enkelt linje.
  • Kommandoen echo 3 > /proc/sys/vm/drop_caches brukes til å slippe sidebufferen, et midlertidig lagringsområde for nylig åpnede filer.

Merk: drop_caches-filen kontrollerer hvilken type bufrede data som skal tømmes, og verdiene er som følger:

  • 1 – Tømmer bare sidebufferen.
  • 2 – Fjerner proteser og inoder.
  • 3 – Tømmer sidebuffer, proteser og inoder.

Som nevnt i kjernedokumentasjonen, vil skriving til drop_caches rense cachen uten å drepe noen applikasjon/tjeneste, kommando echo gjør jobben med å skrive til filen.

Hvis du må tømme diskbufferen, er den første kommandoen tryggest i bedrift og produksjon som “...echo 1 > …. ” vil bare tømme PageCache.

Det anbefales ikke å bruke det tredje alternativet over “...echo 3 > ” i produksjon før du vet hva du gjør, da det vil tømme pagecache, >proteser, og inoder.

Hvordan tømme Swap Space i Linux?

For å tømme swap-plass kan du bruke swapoff-kommandoen med -a-alternativet, som vil deaktivere alle swap-partisjoner.

sudo swapoff -a

Deretter kan du snu den tilbake ved å kjøre følgende kommando, som vil aktivere alle swap-partisjoner.

sudo swapon -a

Er det tilrådelig å frigjøre buffer, hurtigbuffer og bytte i Linux?

Generelt er det ikke en god idé å frigjøre buffer og buffer manuelt i Linux som kan brukes av Linux-kjernen, som er designet for å administrere disse ressursene effektivt, og manuell sletting av dem kan forstyrre systemytelsen.

Det kan imidlertid være sjeldne situasjoner der du trenger å tømme bufferen og bufferen, for eksempel hvis du opplever alvorlig minnepress og ikke kan frigjøre minne på andre måter. I disse tilfellene bør du fortsette med forsiktighet og være klar over den potensielle ytelsen.

På samme måte er det vanligvis ikke rutinemessig eller tilrådelig å rydde plass i Linux under normale omstendigheter.

Automatisering av minneoptimalisering

For å automatisere prosessen og regelmessig tømme minnet, kan du sette opp en cron-jobb for å kjøre kommandoene med spesifiserte intervaller.

Åpne crontab-konfigurasjonen.

crontab -e

Legg til følgende linjer for å tømme hurtigbuffer, buffer og bytte plass daglig ved midnatt:

0 0 * * * sudo sync; echo 3 > /proc/sys/vm/drop_caches
0 0 * * * sudo echo 1 > /proc/sys/vm/drop_caches
0 0 * * * sudo sync; echo 2 > /proc/sys/vm/drop_caches
0 0 * * * sudo swapoff -a && sudo swapon -a

For ytterligere informasjon om å planlegge en jobb med cron, kan det være lurt å se artikkelen vår med tittelen '11 Cron-planleggingsjobber'.

Er det tilrådelig å tømme RAM Cache på en Linux-produksjonsserver?

Nei det er ikke. Tenk på et scenario der du har planlagt et skript for å tømme RAM-bufferen hver dag klokken 02.00. Hver dag klokken 02.00 kjøres skriptet, og tømmer RAM-cachen. Men en dag er et uventet høyt antall brukere online på nettstedet ditt, noe som setter et betydelig krav til serverressursene dine.

Samtidig kjører det planlagte skriptet og sletter alt i hurtigbufferen. Nå henter alle brukere data fra disken, noe som kan føre til serverkrasj og databasekorrupsjon. Derfor er det viktig å tømme RAM-bufferen bare når det er nødvendig, og være oppmerksom på handlingene dine. Ellers risikerer du å bli Cargo Cult-systemadministrator.

Konklusjon

Effektiv minneadministrasjon er avgjørende for et jevnt kjørende Linux-system. Regelmessig tømming av RAM-minnebufferen, bufferen og bytteplassen kan forbedre systemytelsen betydelig. Ved å forstå disse mekanismene og bruke de medfølgende kommandoene, kan du holde Linux-systemet i gang på sitt beste.

Det er alt for nå. Hvis du likte artikkelen, husk å dele din verdifulle tilbakemelding i kommentarfeltet. Gi oss beskjed om hva du mener er en god tilnærming for å tømme RAM-bufferen og -bufferen i produksjons- og bedriftsmiljøer.