Kako očistiti predmemoriju RAM memorije, međuspremnik i swap na Linuxu


Kao i svaki drugi operacijski sustav, GNU/Linux ima učinkovito implementirano upravljanje memorijom, pa čak i više od toga. Međutim, ako bilo koji proces izjeda vašu memoriju i želite ga očistiti, Linux nudi način za ispiranje ili brisanje RAM predmemorije.

U ovom ćemo članku istražiti kako očistiti predmemoriju RAM memorije, međuspremnik i prostor za razmjenu na Linux sustavu kako bi se poboljšala ukupna izvedba.

Razumijevanje predmemorije RAM memorije, međuspremnika i prostora za razmjenu

Istražimo predmemoriju RAM memorije, međuspremnik i swap prostor na Linux sustavu.

RAM predmemorija memorije

Predmemorija RAM memorije je mehanizam koji koristi kernel za čuvanje podataka kojima se redovito pristupa. Iako ovo povećava odziv sustava, preopterećena predmemorija može dovesti do zadržavanja zastarjelih podataka, što utječe na performanse.

Pufer

Poput predmemorije, međuspremnik privremeno čuva podatke, ali se razlikuje po svojoj namjeni. Međuspremnici pohranjuju podatke koji se prenose između komponenti poput CPU-a i tvrdog diska, olakšavajući glatku komunikaciju. Međutim, višak podataka u međuspremniku može umanjiti brzinu sustava.

Zamijeni prostor

Swap prostor je dodijeljeno područje na tvrdom disku koje djeluje kao virtualna memorija kada se fizički RAM potroši. Iako sprječava pad sustava zbog nedostatka memorije, može usporiti sustav ako se pretjerano koristi.

Brisanje predmemorije, međuspremnika i prostora za razmjenu u Linuxu

U određenim situacijama možda ćete morati očistiti predmemoriju, međuspremnik ili swap prostor kao što je objašnjeno u nastavku.

Kako očistiti predmemoriju RAM memorije u Linuxu?

Svaki Linux sustav ima tri opcije za brisanje predmemorije bez prekidanja procesa ili usluga.

Brisanje PageCache-a

1. Da biste izbrisali 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

Čišćenje udubljenja i inoda

2. Za brisanje samo dentries i inodes, možete upotrijebiti sljedeću naredbu, koja će sinkronizirati datotečni sustav i izbrisati i dentries i inode, poboljšanje performansi sustava otpuštanjem predmemoriranih informacija o direktoriju i inodima.

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

Brisanje PageCache-a, zubnih zapisa i inodesa

3. Da biste izbrisali pagecache, dentries i inode, možete koristiti sljedeću naredbu koja će sinkronizirati datotečni sustav i izbrišite predmemoriju stranica, dentries i inode, pomažući pri oslobađanju memorije i poboljšanju performansi sustava.

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 međuspremnik datotečnog sustava.
  • “; ” točka sa zarezom koristi se za odvajanje više naredbi u jednom retku.
  • Naredba echo 3 > /proc/sys/vm/drop_caches koristi se za ispuštanje predmemorije stranice, privremenog prostora za pohranu datoteka kojima se nedavno pristupalo.

Napomena: datoteka drop_caches kontrolira koju vrstu predmemoriranih podataka treba izbrisati, a vrijednosti su sljedeće:

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

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

Ako morate očistiti predmemoriju diska, prva naredba je najsigurnija u poduzećima i proizvodnji kao “...echo 1 > …. ” će izbrisati samo PageCache.

Ne preporučuje se korištenje treće opcije iznad “...echo 3 > ” u produkciji dok ne znate što radite, jer će očistiti pagecache, dentries, i inodes.

Kako očistiti swap prostor u Linuxu?

Za brisanje swap prostora, možete koristiti naredbu swapoff s -a opcijom, koja će onemogućiti sve swap particije.

sudo swapoff -a

Zatim ga vratite pokretanjem sljedeće naredbe, koja će aktivirati sve swap particije.

sudo swapon -a

Je li preporučljivo osloboditi međuspremnik, predmemoriju i zamijeniti u Linuxu?

Općenito, nije dobra ideja ručno oslobađati Međuspremnik i Predmemoriju u Linuxu koje bi možda koristio Linux kernel, koji je dizajniran za učinkovito upravljanje tim resursima, a njihovo ručno brisanje može poremetiti rad sustava.

Međutim, mogu postojati rijetke situacije u kojima trebate očistiti Međuspremnik i Predmemoriju, primjerice ako imate veliki pritisak na memoriju i ne možete osloboditi memoriju na druge načine. U tim slučajevima trebali biste nastaviti s oprezom i biti svjesni mogućeg utjecaja na izvedbu.

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

Automatiziranje optimizacije memorije

Kako biste automatizirali proces i redovito čistili memoriju, možete postaviti cron posao za pokretanje naredbi u određenim intervalima.

Otvorite crontab konfiguraciju.

crontab -e

Dodajte sljedeće retke za brisanje predmemorije, međuspremnika i prostora za razmjenu svaki dan 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 raspoređivanju posla s cron-om, možda ćete htjeti pogledati naš članak pod naslovom '11 Cron Scheduling Jobs'.

Je li preporučljivo očistiti RAM predmemoriju na Linux proizvodnom poslužitelju?

Ne nije. Razmotrite scenarij u kojem ste zakazali skriptu za brisanje RAM predmemorije svaki dan u 2 ujutro. Svakog dana u 2 sata ujutro, skripta se izvršava i ispire vašu RAM predmemoriju. Međutim, jednog dana, neočekivano veliki broj korisnika je online na vašoj web stranici, postavljajući značajan zahtjev za resurse vašeg poslužitelja.

Istovremeno se pokreće zakazana skripta i briše sve u predmemorij. Sada svi korisnici dohvaćaju podatke s diska, što potencijalno dovodi do pada poslužitelja i oštećenja baze podataka. Stoga je ključno brisati RAM predmemoriju samo kada je to potrebno, pazeći na svoje radnje. U suprotnom riskirate da postanete administrator Cargo Cult sustava.

Zaključak

Učinkovito upravljanje memorijom ključno je za besprijekoran rad Linux sustava. Redovito brisanje predmemorije RAM memorije, međuspremnika i swap prostora može značajno poboljšati performanse sustava. Razumijevanjem ovih mehanizama i korištenjem ponuđenih naredbi, možete održavati svoj Linux sustav u najboljem mogućem radu.

To je sve za sada. Ako ste uživali u članku, ne zaboravite podijeliti svoje vrijedne povratne informacije u komentarima. Javite nam svoje mišljenje o tome što smatrate dobrim pristupom za brisanje RAM predmemorije i međuspremnika u proizvodnim i poslovnim okruženjima.