Ca orice alt sistem de operare, GNU / Linux a implementat o gestionare a memoriei eficient și chiar mai mult decât atât. Dar dacă orice proces îți consumă memoria și vrei să o ștergi, Linux oferă o modalitate de a spăla sau șterge memoria cache.
Fiecare sistem Linux are trei opțiuni pentru a șterge memoria cache fără a întrerupe procesele sau serviciile.
1. Ștergeți numai PageCache.
# sincronizare; echo 1> / proc / sys / vm / drop_caches.
2. Ștergeți dentarele și inodurile.
# sincronizare; echo 2> / proc / sys / vm / drop_caches.
3. Ștergeți PageCache, produse dentare și inoduri.
# sincronizare; echo 3> / proc / sys / vm / drop_caches
Explicația comenzii de mai sus.
sincronizare va spăla bufferul sistemului de fișiere. Comandament separat de “;”
rulează secvențial. Shell așteaptă terminarea fiecărei comenzi înainte de a executa următoarea comandă din secvență. Așa cum s-a menționat în documentația kernelului, scriind către drop_cache va curăța memoria cache fără a ucide nicio aplicație / serviciu, ecou de comandă face treaba de a scrie la dosar.
Dacă trebuie să ștergeți memoria cache a discului, prima comandă este cea mai sigură în întreprindere și în producție „... ecou 1> ...”
va șterge PageCache numai. Nu este recomandat să utilizați a treia opțiune de mai sus „... ecou 3>”
în producție până când nu știi ce faci, așa cum va fi clar PageCache, stomatologii și inoduri.
Când aplicați diverse setări și doriți să verificați, dacă acesta este implementat în mod special pe benchmark-ul extins I / O, atunci poate fi necesar să ștergeți memoria cache. Puteți renunța la cache așa cum s-a explicat mai sus, fără a reporni sistemul, adică nu este necesar un timp de nefuncționare.
Linux este conceput în așa fel încât să privească în memoria cache a discului înainte de a privi pe disc. Dacă găsește resursa în memoria cache, atunci cererea nu ajunge pe disc. Dacă curățăm memoria cache, memoria cache a discului va fi mai puțin utilă, deoarece sistemul de operare va căuta resursa pe disc.
Mai mult, va încetini sistemul timp de câteva secunde, în timp ce memoria cache este curățată și fiecare resursă necesară de sistemul de operare este încărcată din nou în memoria cache.
Acum vom crea un script shell pentru a șterge automat memoria cache zilnic la 2am printr-o sarcină de planificare cron. Creați un script shell clearcache.sh și adăugați următoarele rânduri.
#! / bin / bash. # Notă, folosim „ecou 3”, dar nu este recomandat în producție, în schimb, folosiți „ecou 1” ecou "ecou 3> / proc / sys / vm / drop_caches"
Setați permisiunea de executare pe clearcache.sh fişier.
# chmod 755 clearcache.sh.
Acum puteți apela scriptul ori de câte ori ați cerut să ștergeți memoria cache.
Acum setați un cron pentru a șterge memoria cache în fiecare zi la 2 dimineața. Deschis crontab pentru editare.
# crontab -e.
Adăugați linia de mai jos, salvați și ieșiți pentru al rula 2am zilnic.
0 2 * * * /path/to/clearcache.sh.
Pentru mai multe detalii despre cum să cronificați un job, vă recomandăm să consultați articolul nostru 11 Cron Programarea locurilor de muncă.
Nu! nu este. Gândiți-vă la o situație în care ați programat scriptul pentru a șterge memoria cache în fiecare zi la 2am. În fiecare zi, la ora 02:00, scriptul este executat și vă spală memoria cache. Într-o zi, din orice motiv, utilizatorii pot fi mai mult decât se așteptau online pe site-ul dvs. web și caută resurse de pe serverul dvs.
În același timp, scriptul programat rulează și șterge totul în cache. Acum toți utilizatorii preiau date de pe disc. Acesta va duce la blocarea serverului și va corupe baza de date. Deci, ștergeți memoria RAM numai atunci când este necesar și vă cunoașteți pașii, altfel sunteți administrator de sistem Cargo Cult.
Dacă doriți să goliți spațiul Swap, poate doriți să executați comanda de mai jos.
# swapoff -a && swapon -a.
De asemenea, puteți adăuga comanda de mai sus la un script cron de mai sus, după ce înțelegeți tot riscul asociat.
Acum vom combina ambele comenzi de mai sus într-o singură comandă pentru a crea un script adecvat pentru a șterge memoria cache și a schimba spațiul.
# echo 3> / proc / sys / vm / drop_caches && swapoff -a && swapon -a && printf '\ n% s \ n' 'RAM-cache și Swap Cleared' SAU $ su -c "echo 3> '/ proc / sys / vm / drop_caches' && swapoff -a && swapon -a && printf '\ n% s \ n' 'Ram-cache and Swap Cleared'" rădăcină.
După testarea ambelor comenzi de mai sus, vom rula comanda „gratuit -h”Înainte și după executarea scriptului și va verifica memoria cache.
Asta este tot deocamdată, dacă ți-a plăcut articolul, nu uita să ne oferi feedback-ul tău valoros în comentarii pentru a ne anunța, ceea ce credeți că este o idee bună să ștergeți memoria cache și tamponul în producție și Afacere?