logo

Počisti predpomnilnik Linux

V tej vadnici se bomo naučili, kako počistiti predpomnilnik RAM v Linuxu in počistiti prostor za izmenjavo.

Tako kot vsi drugi operacijski sistemi ima tudi GNU/Linux implementiran sistem za upravljanje pomnilnika. Čeprav je upravljanje pomnilnika v Linuxu veliko učinkovitejše in celo pogosteje uporabljeno kot drugi operacijski sistemi. Vendar pa v nekaterih primerih, ko želite nadzorovati upravljanje pomnilnika ali če obstaja en ali več procesov, ki jedo RAM vašega sistema. V takem primeru ga želimo ustaviti; Linux ponuja nekaj načinov za izpiranje (čiščenje predpomnilnika ram).

Počisti predpomnilnik Linux

Kako počistiti predpomnilnik v Linuxu?

Skoraj v vsakem sistemu Linux so na voljo trije načini za brisanje predpomnilnika. Nekatere od teh je mogoče izjemno uporabljati brez prekinitve tekočih procesov ali storitev. Trije načini so naslednji:

  1. Počisti samo PageCache
  2. Počistite zobe in inode
  3. Počisti zobnike in inode, počisti PageCache

Podrobno bomo obravnavali vse tri metode in si ogledali njihovo praktično izvedbo:

1. Počisti samo predpomnilnik PageCache-

Ta metoda je eden najvarnejših načinov čiščenja predpomnilnika Linuxa, saj lahko počisti predpomnilnik, ne da bi uničil tekoče operacije, aplikacije in storitve. To naj bi bil najvarnejši način čiščenja predpomnilnika, saj ga je mogoče uporabiti v produkciji in očisti samo PageCache. Pri tej metodi se uporabljajo naslednji ukazi:

Ukaz

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

Pojasnilo:

pretvori niz v medštevilo

V zgornjem ukazu je ' sinhronizacija ' se uporablja za izpiranje medpomnilnika datotečnega sistema, ukaz pa je ločen z ' ; ' izvajajo na zaporedni način.

Vendar lupina počaka, da se vsak ukaz izvede ali prekine, preden začne izvajati naslednji ukaz, ki je na voljo v zaporedju.

The drop_caches se uporabljajo za izpiranje ali čiščenje predpomnilnika, ne da bi uničili ali vplivali na katero koli drugo delujočo aplikacijo ali storitev, kot je tudi jasno omenjeno v dokumentaciji jedra. ' odmev ' opravi pisanje v datoteke.

Koraki za brisanje PageCache s terminalom:

Korak 1 - Odprite terminal v Linuxu in vnesite naslednji podani ukaz ter pritisnite enter. Ko se ukaz izvede, bo prikazal informacije o sistemskem pomnilniku, kot je prikazano v primeru:

Ukaz

 free 

Zgornji ukaz se uporablja za prikaz količine uporabljenega pomnilnika in prikaz drugih dejavnikov, kot je skupni razpoložljivi pomnilnik, izmenjalni pomnilnik itd. Uporabimo lahko to ' prost ' ukaz tik pred in po uporabi posamezne metode.

Ukaz 'free' je treba uporabiti pred in po izvedbi dejanskega ukaza, da lahko zlahka vidimo ali zaznamo spremembe v dodelitvi pomnilnika. Oglejmo si primer, da razumemo, kako celoten postopek dejansko deluje:

Primer

Počisti predpomnilnik Linux

2. Jasne dentries in inodes-

Ta metoda se uporablja za brisanje pomnilnika dentries in inode. Podobna je prvi metodi, vendar nekoliko drugačna, saj se uporablja za brisanje pomnilnika dentries in inode obeh namesto čiščenja pomnilnika PageCache. Kljub temu je zelo podobna prvi metodi, o kateri smo razpravljali zgoraj. Ukaz, uporabljen v tej metodi, je podan spodaj:

Ukaz

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

Oglejmo si primer, da razumemo, kako izvesti to metodo:

Primer

Počisti predpomnilnik Linux

3. Počistite dentries in inode, Clear PageCache

Je ena najučinkovitejših metod. Kljub temu ga tradicionalno ni priporočljivo uporabljati, dokler ne veste, kaj počnete, ker ne velja za najvarnejšega za uporabo, zlasti v proizvodnji. Ukaz, uporabljen v tej metodi, uporablja 'echo 3 >', ki hkrati čisti predpomnilnik PageCache, dentries in inode.

Ukaz:

 # sync ; echo 3 > / porc / sys / vm / drop_caches 

Če želite podrobneje razumeti, kako dejansko deluje, razmislite o danem primeru:

primer:

Počisti predpomnilnik Linux

Opomba: ni priporočljivo, da ga uporabljate v proizvodnji, razen če veste, kaj počnete, ker bo takoj očistil PageCache in dentries, tudi inode, kot smo že razpravljali zgoraj.

Zamenjava prostora

Na splošno se izmenjalni prostor uporablja, ko je izkoriščenost fizičnega pomnilnika skoraj na vrhuncu. Torej, ko in če sistem potrebuje več pomnilniških virov in je fizični ram poln, se vse neaktivne strani prenesejo v prostor za zamenjavo pomnilnika.

Vendar pa tudi prostor za zamenjavo pomnilnika pomaga sistemu kot majhna, a učinkovita količina RAM-a. Kljub temu nedvomno ni priporočljivo obravnavati Swap Space kot fizičnega ovna.

bah če drugače

Kako počistiti izmenjalni prostor v Linuxu?

Če želite počistiti izmenjalni pomnilnik v vašem sistemu, morate preprosto izklopiti zamenjavo. To bo premaknilo vse podatke iz izmenjalnega pomnilnika nazaj v RAM. Pomeni tudi, da morate biti prepričani, da imate v sistemu dovolj RAM-a za podporo te operacije.

Enostaven način za to je, da zaženete 'free-m' ukaz, da vidite, kaj se uporablja v Swap, RAM, in nato onemogočite Swap.

Ko ga izklopite, počakajte 30 sekund ali več, da počakate nekaj časa, da se operacija zaključi, nato pa zamenjavo znova vklopite. To počisti predpomnilnik izmenjalnega pomnilnika in ga znova omogoči, vendar preden počistite zamenjavo, bi morali videti trenutno (ali privzeto) nastavitev vašega sistema.

Če želite videti trenutno nastavitev swappiness vašega sistema, morate samo odpreti terminal in uporabiti naslednji ukaz, kot je prikazano v izhodu:

 cat /proc/sys/vm/swappiness 

Izhod

Počisti predpomnilnik Linux

Kot lahko vidite, je trenutna vrednost Swappiness našega sistema '60' sekund. Če pa jo želite spremeniti, jo lahko nastavite kjerkoli med 0 in 100. Postopek urejanja (posodabljanja) te vrednosti je precej preprost. Vse, v terminal morate vnesti naslednji ukaz in pritisniti enter:

Ukaz:

 sudo sysctl vm.swappiness=x 

(Tu je x vrednost zamenjave, ki jo želimo nastaviti)

Kot lahko vidite v zgornjem izhodu, je trenutna vrednost zamenjave (ali privzeta vrednost) našega sistema 60. Poskusimo spremeniti vrednost zamenjave na 40.

1. Odprite terminal s pritiskom na Ctrl+Alt+T na tipkovnici.

Počisti predpomnilnik Linux

2. Ko se terminal odpre, vnesite naslednji ukaz in pritisnite enter, kot je prikazano na spodnji sliki:

 sudo sysctl vm.swappiness=40 

Izhod

predmet json v Javi
Počisti predpomnilnik Linux

Opomba: morda vas bo pozval, da vnesete geslo, saj moramo ta ukaz zagnati s privilegiji superUser (korenski uporabnik).

Preverjanje

Če želite preveriti, ali je vrednost zamenjave uspešno posodobljena, vnesite naslednji ukaz in pritisnite gumb enter:

 cat /proc/sys/vm/swappiness 

Izhod

Počisti predpomnilnik Linux

Kot lahko vidite v izhodu, smo vrednost zamenjave uspešno posodobili na 40.

Počistite izmenjalni prostor

Postopek čiščenja izmenjalnega prostora je precej preprost, ker preprosto moramo izklopite Swap, zaradi katerega se vsi podatki ali neaktivne strani prenesejo nazaj v RAM iz Swap pomnilniškega prostora. Ko prekinete zamenjavo, morate počakati 30 sekund in znova zagnati ali znova zagnati izmenjalni prostor.

Uporabni ukazi:

To je nekaj osnovnih ukazov, ki nam bodo pomagali pri čiščenju Swap Space:

Počisti predpomnilnik Linux

Koraki za brisanje izmenjalnega pomnilnika

Poglejmo, kako uporabiti te ukaze za brisanje izmenjalnega prostora ali pomnilnika:

Korak 1. Odprite terminal s pritiskom na ' Ctrl+Alt+ T ' na tipkovnici.

2. korak. Ko se terminal odpre, vnesite ' sudo -i ' ukaz, ker lahko zahtevamo privilegiji superuporabnika za zagon zgoraj navedenih ukazov:

Počisti predpomnilnik Linux

3. korak. Vnesite ukaz 'free -m', da si prej ogledate uporabo pomnilnika izklopite the Zamenjaj :

c kodno polje nizov
Počisti predpomnilnik Linux

Korak - 4 Zdaj vnesite ' Zamenjava -a ' in pritisnite enter, da izklopite zamenjavo, kot je prikazano spodaj:

Počisti predpomnilnik Linux

5. korak. Po izklopite , Swap čaka najmanj 40 sekund.

6. korak. Zdaj vnesite 'swap-a' in pritisnite enter, da ponovno omogočite Swap. Če želite videti razliko (ali spremembo) v uporabi pomnilnika, še enkrat zaženite ukaz 'free-m', kot je prikazano spodaj:

Počisti predpomnilnik Linux

Upajmo, da vam bo to pomagalo počistiti izmenjevalni pomnilnik vašega sistema, če se kdaj znajdete v takšni situaciji.