stejně jako jakýkoli jiný operační systém implementoval GNU/Linux správu paměti efektivně a ještě více. Pokud však nějaký proces pohlcuje vaši paměť a chcete ji vymazat, Linux poskytuje způsob, jak propláchnout nebo vymazat mezipaměť ram.
jak vymazat mezipaměť v Linuxu?
každý systém Linux má tři možnosti, jak vymazat mezipaměť bez přerušení jakýchkoli procesů nebo služeb.
1. Clear PageCache pouze.
# sync; echo 1 > /proc/sys/vm/drop_caches
2. Jasné dentries a inodes.
# sync; echo 2 > /proc/sys/vm/drop_caches
3. Vymazat PageCache, dentries a inodes.
# sync; echo 3 > /proc/sys/vm/drop_caches
vysvětlení výše uvedeného příkazu.
synchronizace propláchne vyrovnávací paměť systému souborů. Příkaz oddělený ";”
spustit postupně. Shell čeká na ukončení každého příkazu před provedením dalšího příkazu v sekvenci. Jak je uvedeno v dokumentaci jádra, zápis do drop_cache vyčistí mezipaměť bez zabití jakékoli aplikace / služby, příkaz echo dělá práci zápisu do souboru.
máte-Li vymazat mezipaměť disku, první příkaz je nejbezpečnější v podnikání a výroby jako "...echo 1 > ….”
bude jasné PageCache. To se nedoporučuje používat třetí možnost výše "...echo 3 >”
ve výrobě, dokud nebudete vědět, co děláte, jak to bude jasné, PageCache, dentries a inody.
je vhodné uvolnit vyrovnávací paměť a mezipaměť v Linuxu, které by mohly být používány linuxovým jádrem?
Pokud používáte různá nastavení a chcete zkontrolovat, zda je skutečně implementováno speciálně na I / O-extensive benchmark, možná budete muset vymazat vyrovnávací paměť. Mezipaměť můžete zrušit, jak je vysvětleno výše, aniž byste restartovali systém, tj.
Linux je navržen tak, aby se podíval do mezipaměti disku, než se podívá na disk. Pokud najde prostředek v mezipaměti, požadavek se nedostane na disk. Pokud vyčistíme mezipaměť, mezipaměť disku bude méně užitečná, protože operační systém bude hledat zdroj na disku.
navíc to bude také zpomalit systém na několik sekund, zatímco mezipaměť je vyčištěn a každý zdroj potřebný OS je znovu načten do diskové mezipaměti.
nyní budeme vytvářet shell skript pro automatické vymazání mezipaměti RAM denně ve 2 hodiny ráno pomocí úlohy plánovače cron. Vytvořte skript shellu clearcache.sh a přidejte následující řádky.
#!/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"
Set execute oprávnění na clearcache.sh soubor.
# chmod 755 clearcache.sh
nyní můžete volat skript, kdykoli budete potřebovat vymazat mezipaměť ram.
nyní nastavte cron pro vymazání mezipaměti RAM každý den ve 2 hodiny ráno. Otevřete crontab pro úpravy.
# crontab -e
Připojte níže uvedený řádek, uložte a ukončete jej ve 2 hodiny ráno denně.
0 2 * * * /path/to/clearcache.sh
Pro více informací o tom, jak cron práci můžete chtít zkontrolovat náš článek o 11 cron plánování pracovních míst.
je vhodné automaticky vymazat mezipaměť RAM na produkčním serveru?
ne! není. Přemýšlejte o situaci, kdy jste naplánovali skript vymazat mezipaměť ram každý den ve 2 hodiny ráno. Každý den ve 2 hodiny ráno je skript spuštěn a propláchne mezipaměť RAM. Jednoho dne z jakéhokoli důvodu, může být více, než se očekávalo, že uživatelé jsou online na vašem webu a hledají zdroje z vašeho serveru.
současně naplánované spuštění skriptu a vymaže vše v mezipaměti. Nyní všichni uživatelé jsou načítání dat z disku. To bude mít za následek selhání serveru a poškození databáze. Takže clear ram-cache pouze v případě potřeby, a známý své kroky nohou, jinak jste správce Cargo kultovní systém.
jak vymazat odkládací prostor v Linuxu?
Chcete-li vymazat odkládací prostor, můžete spustit níže uvedený příkaz.
# swapoff -a && swapon -a
také můžete přidat výše uvedený příkaz do skriptu cron výše, po pochopení všech souvisejících rizik.
nyní budeme kombinovat oba výše uvedené příkazy do jednoho příkazu, abychom vytvořili správný skript pro vymazání mezipaměti RAM a odkládacího prostoru.
# 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
Po testování obou výše uvedený příkaz, budeme spusťte příkaz „free-h“ před a po spuštění skriptu a bude kontrolovat cache.