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ă vreun proces vă mănâncă memoria și doriți să o ștergeți, Linux oferă o modalitate de a spăla sau șterge memoria cache ram.
cum să ștergeți memoria Cache în Linux?
fiecare sistem Linux are trei opțiuni pentru a șterge memoria cache fără a întrerupe procesele sau serviciile.
1. Ștergeți numai PageCache.
# sync; echo 1 > /proc/sys/vm/drop_caches
2. Clear dentries și inodes.
# sync; echo 2 > /proc/sys/vm/drop_caches
3. Șterge PageCache, dentries și inodes.
# sync; echo 3 > /proc/sys/vm/drop_caches
explicația comenzii de mai sus.
sync va spăla bufferul sistemului de fișiere. Comandă separată de";”
rulați secvențial. Shell-ul așteaptă ca fiecare comandă să se termine înainte de a executa următoarea comandă din secvență. După cum sa menționat în documentația kernel-ului, scrierea în drop_cache va curăța memoria cache fără a ucide nicio aplicație/serviciu, command echo face treaba de a scrie în fișier.
dacă trebuie să ștergeți memoria cache a discului, prima comandă este cea mai sigură în întreprindere și producție, deoarece"...echo 1 > ….”
va șterge doar PageCache. Nu este recomandat să utilizați a treia opțiune de mai sus "...echo 3 >”
în producție până când nu știți ce faceți, deoarece va șterge PageCache, dentries și inodes.
este o idee bună să eliberați Buffer și Cache în Linux care ar putea fi utilizate de Kernel-ul Linux?
când aplicați diverse setări și doriți să verificați, dacă este de fapt implementat special pe i / o-benchmark extins, atunci poate fi necesar să ștergeți memoria cache tampon. Puteți renunța la cache așa cum sa 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 de pe disc.
Mai mult decât atât, va încetini, de asemenea, sistemul pentru câteva secunde în timp ce cache-ul este curățat și fiecare resursă cerută de OS este încărcat din nou în disc-cache.
acum vom crea un script shell pentru a șterge automat memoria cache RAM zilnic la ora 2 dimineața printr-o sarcină cron scheduler. Creați un script shell clearcache.sh și adăugați următoarele linii.
#!/bin/bash# Note, we are using "echo 3", but it is not recommended in production instead use "echo 1"echo "echo 3 > /proc/sys/vm/drop_caches"
setați permisiunea de executare pe clearcache.sh dosar.
# chmod 755 clearcache.sh
acum Puteți apela scriptul ori de câte ori doriți să ștergeți memoria cache ram.
acum setați un cron pentru a șterge memoria cache RAM de zi cu zi la 2am. Deschideți crontab pentru editare.
# crontab -e
adăugați linia de mai jos, salvați și ieșiți pentru a o rula la 2am zilnic.
0 2 * * * /path/to/clearcache.sh
pentru mai multe detalii despre cum să cron un loc de muncă poate doriți să verificați articolul nostru pe 11 Cron programarea de locuri de muncă.
este o idee bună să ștergeți automat memoria cache RAM pe serverul de producție?
nu! nu este. Gândiți-vă la o situație în care ați programat scriptul pentru a șterge memoria cache ram în fiecare zi la ora 2 dimineața. De zi cu zi la 2am script-ul este executat și bufeuri memoria cache RAM. Într-o zi, indiferent de motiv, poate fi mai mult decât se aștepta ca utilizatorii să fie online pe site-ul dvs. web și să caute resurse de pe serverul dvs.
în același timp programat rula script-ul și șterge totul în cache. Acum, toți utilizatorii preiau date de pe disc. Aceasta va duce la accident de server și corupt baza de date. Deci, clar ram-cache numai atunci când este necesar,și cunoscut pașii de picior, altfel sunteți un administrator de sistem de cult de marfă.
cum să ștergeți spațiul Swap în Linux?
dacă doriți să ștergeți spațiul Swap, este posibil să doriți să rulaț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ă înțelegerea tuturor riscurilor asociate.
acum vom combina ambele comenzi de mai sus într-o singură comandă pentru a crea un script adecvat pentru a șterge memoria Cache RAM și a schimba spațiul.
# echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'OR$ su -c "echo 3 >'/proc/sys/vm/drop_caches' && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'" root
după testarea ambelor comenzi de mai sus, vom rula comanda „free-h” înainte și după rularea scriptului și vom verifica memoria cache.