![Čo môžete očakávať na WWDC 2022 spoločnosti Apple](/f/687a9fb7595a5dbe9a7b52d659f580d6.jpg?width=100&height=100)
Ako každý iný operačný systém, GNU/Linux implementoval správu pamäte efektívne a ešte viac. Ak vám však nejaký proces zožerie pamäť a chcete ho vyčistiť, Linux ponúka spôsob, ako vyprázdniť alebo vymazať vyrovnávaciu pamäť RAM.
Každý systém Linux má tri možnosti vymazania vyrovnávacej pamäte bez prerušenia akýchkoľvek procesov alebo služieb.
1. Vymazať iba cache cache.
# synchronizácia; echo 1>/proc/sys/vm/drop_caches.
2. Vyčistite chrup a inódy.
# synchronizácia; echo 2>/proc/sys/vm/drop_caches.
3. Vymažte medzipamäť stránok, zubáče a inody.
# synchronizácia; echo 3>/proc/sys/vm/drop_caches
Vysvetlenie vyššie uvedeného príkazu.
synchronizácia prepláchne vyrovnávaciu pamäť systému súborov. Velenie oddelené “;”
bežať postupne. Shell čaká na vykonanie každého príkazu pred vykonaním nasledujúceho príkazu v poradí. Ako je uvedené v dokumentácii jadra, píšte na adresu drop_cache vyčistí vyrovnávaciu pamäť bez toho, aby zabil akúkoľvek aplikáciu/službu, echo príkazu vykonáva prácu pri zápise do súboru.
Ak musíte vymazať vyrovnávaciu pamäť disku, prvý príkaz je najbezpečnejší v podniku a produkcii ako "... echo 1> ..."
vyčistí PageCache iba. Neodporúča sa používať tretiu možnosť uvedenú vyššie “... echo 3>”
vo výrobe, kým nebudete vedieť, čo robíte, ako bude zrejmé PageCache, dentries a inódy.
Keď aplikujete rôzne nastavenia a chcete skontrolovať, či je skutočne implementovaný špeciálne v benchmarku rozsiahlom I/O, možno budete musieť vymazať vyrovnávaciu pamäť vyrovnávacej pamäte. Cache môžete vypustiť, ako je vysvetlené vyššie, bez reštartovania systému, tj. Nie sú potrebné žiadne prestoje.
Linux je navrhnutý tak, aby sa pred pozeraním na disk pozrel do diskovej vyrovnávacej pamäte. Ak nájde zdroj vo vyrovnávacej pamäti, žiadosť sa nedostane na disk. Ak vyčistíme vyrovnávaciu pamäť, medzipamäť disku bude menej užitočná, pretože operačný systém bude hľadať zdroj na disku.
Navyše to na niekoľko sekúnd spomalí systém, kým sa vyrovnávacia pamäť vyčistí a všetky prostriedky požadované operačným systémom sa znova načítajú do vyrovnávacej pamäte disku.
Teraz vytvoríme skript Shell na automatické vymazanie vyrovnávacej pamäte RAM denne o 2 hod prostredníctvom úlohy plánovača cron. Vytvorte skript shellu clearcache.sh a pridajte nasledujúce riadky.
#!/bin/bash. # Upozorňujeme, že používame „echo 3“, ale vo výrobe sa to neodporúča, namiesto toho používajte „echo 1“ echo "echo 3>/proc/sys/vm/drop_caches"
Nastavte povolenie na spustenie na clearcache.sh súbor.
# chmod 755 clearcache.sh.
Teraz môžete skript zavolať, kedykoľvek budete potrebovať vymazať vyrovnávaciu pamäť RAM.
Teraz nastavte cron na vymazanie vyrovnávacej pamäte RAM každý deň o 2:00. Otvorené crontab na úpravu.
# crontab -e.
Pripojte nasledujúci riadok, uložte ho a ukončite, aby sa spustil 2 hod denne.
0 2 * * * /path/to/clearcache.sh.
Podrobnejšie informácie o tom, ako zaradiť prácu do zamestnania, nájdete v našom článku 11 úloh plánovania plánov.
Nie! to nieje. Zamyslite sa nad situáciou, keď ste naplánovali, aby skript každý deň vymazával vyrovnávaciu pamäť RAM 2 hod. Každý deň o 2:00 sa spustí skript a vymaže vašu pamäť RAM. Jedného dňa z akéhokoľvek dôvodu môže byť viac, než sa očakávalo, že používatelia sú online na vašom webe a hľadajú zdroje na vašom serveri.
Súčasne sa spustí naplánovaný skript a vymaže všetko vo vyrovnávacej pamäti. Teraz všetci používatelia načítavajú údaje z disku. Výsledkom bude zlyhanie servera a poškodenie databázy. Vymažte vyrovnávaciu pamäť RAM iba vtedy, ak je to potrebné, a oboznámte sa so svojimi krokmi, inak ste správcom systému Cargo Cult.
Ak chcete vymazať miesto na disku, možno budete chcieť spustiť nasledujúci príkaz.
# swapoff -a && swapon -a.
Po pochopení všetkých súvisiacich rizík môžete tiež pridať vyššie uvedený príkaz do skriptu cron vyššie.
Teraz spojíme oba vyššie uvedené príkazy do jedného príkazu, aby sme vytvorili správny skript na vymazanie pamäte RAM a swapu.
# 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'" koreň.
Po otestovaní oboch vyššie uvedených príkazov spustíme príkaz „voľno -h”Pred a po spustení skriptu a skontroluje vyrovnávaciu pamäť.
To je zatiaľ všetko, ak sa vám článok páčil, nezabudnite nám poskytnúť svoju cennú spätnú väzbu v pripomienky, aby ste nás informovali, čo si myslíte, že je vhodné vymazať vyrovnávaciu pamäť a vyrovnávaciu pamäť RAM vo výrobe a Enterprise?