Kako očistiti RAM memoriju keš, bafer i zamijeniti na Linuxu


Kao i svaki drugi operativni sistem, GNU/Linux je implementirao upravljanje memorijom efikasno i čak više od toga. Međutim, ako vam bilo koji proces jede memoriju i želite da je izbrišete, Linux pruža način da ispraznite ili obrišete RAM keš memoriju.

U ovom članku ćemo istražiti kako očistiti predmemoriju RAM memorije, međuspremnik i swap prostor na Linux sistemu kako bismo poboljšali ukupne performanse.

Razumijevanje RAM memorije keš memorije, međuspremnika i razmjenjivog prostora

Hajde da istražimo RAM memoriju keš, bafer i swap prostor na Linux sistemu.

RAM memorija keš memorija

Keš memorije RAM-a je mehanizam koji kernel koristi za čuvanje podataka kojima se redovno pristupa. Iako ovo povećava odziv sistema, preopterećena keš memorija može dovesti do zadržavanja zastarjelih podataka, što utiče na performanse.

Buffer

Kao i cache, bafer privremeno zadržava podatke, ali se razlikuje po svojoj namjeni. Baferi pohranjuju podatke koji se prenose između komponenti poput CPU-a i tvrdog diska, olakšavajući nesmetanu komunikaciju. Međutim, višak podataka u baferu može ometati brzinu sistema.

Swap Space

Swap prostor je dodijeljeno područje na tvrdom disku koje djeluje kao virtuelna memorija kada se iscrpi fizički RAM. Iako sprečava pad sistema zbog malo memorije, može usporiti sistem ako se prekomjerno koristi.

Brisanje predmemorije, međuspremnika i swap prostora u Linuxu

U određenim situacijama, možda ćete morati da obrišete keš memoriju, bafer ili swap prostor kao što je objašnjeno u nastavku.

Kako očistiti predmemoriju RAM memorije u Linuxu?

Svaki Linux sistem ima tri opcije za brisanje keša bez prekidanja bilo kakvih procesa ili usluga.

Brisanje predmemorije stranice

1. Da obrišete samo PageCache, možete koristiti sljedeću naredbu, koja će posebno obrisati PageCache, pomažući pri oslobađanju memorijskih resursa.

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

Brisanje zubaca i inoda

2. Da obrišete samo dentries i inode, možete koristiti sljedeću naredbu, koja će sinhronizirati sistem datoteka i izbrisati oba zuba i inode, poboljšanje performansi sistema oslobađanjem keširanih informacija o direktorijumu i inode.

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

Brisanje predmemorije stranice, zubaca i inode

3. Da obrišete keš memorije stranice, dentries i inode, možete koristiti sljedeću naredbu koja će se sinhronizirati sistem datoteka i obrišite predmemoriju stranice, dentries i inode, pomažući da se oslobodi memorija i poboljša performanse sistema.

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

Evo objašnjenja svakog dijela gornje naredbe:

  • sudo se koristi za izvršavanje naredbe kao superkorisnik.
  • sync će isprazniti bafer sistema datoteka.
  • The “; ” Tačka i zarez se koristi za odvajanje više naredbi u jednom redu.
  • Komanda echo 3 > /proc/sys/vm/drop_caches se koristi za ispuštanje predmemorije stranice, privremene memorije za datoteke kojima je nedavno pristupljeno.

Napomena: Datoteka drop_caches kontrolira koji tip keširanih podataka treba obrisati, a vrijednosti su sljedeće:

  • 1 – Briše samo predmemoriju stranice.
  • 2 – Briše zube i inode.
  • 3 – Briše keš stranice, zube i inode.

Kao što je spomenuto u dokumentaciji kernela, pisanje u drop_caches će očistiti keš bez ubijanja bilo koje aplikacije/usluge, komanda echo obavlja posao pisanja u datoteku.

Ako morate da obrišete predmemoriju diska, prva komanda je najsigurnija u preduzeću i proizvodnji kao “...echo 1 > …. ” će obrisati samo PageCache.

Nije preporučljivo koristiti treću opciju iznad “...echo 3 > ” u produkciji dok ne znate šta radite, jer će to obrisati cache stranice, zubice, i inode.

Kako očistiti swap prostor u Linuxu?

Da biste očistili swap prostor, možete koristiti naredbu swapoff sa opcijom -a, koja će onemogućiti sve swap particije.

sudo swapoff -a

Zatim ga vratite tako što ćete pokrenuti sljedeću naredbu, koja će aktivirati sve swap particije.

sudo swapon -a

Da li je preporučljivo osloboditi bafer, keš i swap u Linuxu?

Općenito, nije dobra ideja ručno oslobađati Međuspremnik i Cache u Linuxu koji bi mogao koristiti Linux kernel, koji je dizajniran za efikasno upravljanje ovim resursima, i njihovo ručno brisanje može poremetiti performanse sistema.

Međutim, mogu postojati rijetke situacije u kojima trebate očistiti Međuspremnik i Cache, kao što je ako imate veliki pritisak na memoriju i ne možete osloboditi memoriju na drugi način. U ovim slučajevima, trebali biste nastaviti s oprezom i biti svjesni potencijalnog utjecaja na performanse.

Slično tome, brisanje swap prostora u Linuxu općenito nije rutinska ili preporučljiva praksa u normalnim okolnostima.

Automatizacija optimizacije memorije

Da biste automatizirali proces i redovno čistili memoriju, možete postaviti cron posao da izvodi naredbe u određenim intervalima.

Otvorite crontab konfiguraciju.

crontab -e

Dodajte sljedeće redove da obrišete keš memoriju, međuspremnik i swap prostor svakog dana u ponoć:

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

Za dodatne informacije o zakazivanju poslova pomoću crona, možda ćete htjeti pogledati naš članak pod naslovom „11 poslova za planiranje Cron-a“.

Da li je preporučljivo očistiti RAM keš memoriju na Linux proizvodnom serveru?

Ne nije. Razmislite o scenariju u kojem ste zakazali skriptu za brisanje RAM keša svaki dan u 2 sata ujutro. Svaki dan u 2 sata ujutro, skripta se izvršava, ispira vaš RAM keš. Međutim, jednog dana, neočekivano veliki broj korisnika je na mreži na vašoj web stranici, postavljajući značajnu potražnju za resursima vašeg servera.

Istovremeno, planirana skripta se pokreće i briše sve u kešu. Sada svi korisnici preuzimaju podatke s diska, što potencijalno dovodi do pada servera i oštećenja baze podataka. Stoga je od suštinskog značaja da obrišete RAM keš samo kada je to potrebno, vodeći računa o svojim radnjama. U suprotnom, rizikujete da postanete Cargo Cult sistemski administrator.

Zaključak

Efikasno upravljanje memorijom je ključno za neometano funkcionisanje Linux sistema. Redovno brisanje keša RAM memorije, bafera i swap prostora može značajno poboljšati performanse sistema. Razumijevanjem ovih mehanizama i korištenjem datih komandi, možete održavati svoj Linux sistem u najboljem stanju.

To je sve za sada. Ako vam se dopao članak, ne zaboravite podijeliti svoje vrijedne povratne informacije u komentarima. Javite nam svoje mišljenje o onome za šta vjerujete da je dobar pristup za brisanje RAM keša i bafera u proizvodnim i poslovnim okruženjima.