Někdy systému dojde paměť kvůli velké paměti RAM, kterou využívají objekty uložené v mezipaměti. V takovém případě musíte buď zvýšit fyzickou paměť v systému, nebo přidat více odkládacího prostoru. Můžete také dát jádru pokyn, aby vymazalo mezipaměť RAM v systému přidáním čísla do /proc/sys/vm/drop_caches
soubor.
Je bezpečné, ale nedoporučuje se vymazat mezipaměť v systému Linux. Vymazání mezipaměti v systémech Linux zpomaluje výkon systému, protože čtení souborů z paměti je mnohem rychlejší než na trvalém disku. Vzhledem k tomu, že vyřazuje objekty uložené v mezipaměti z paměti, může opětovné vytvoření zahozených objektů stát značné množství I/O a CPU. Tento tutoriál vám pomůže vymazat mezipaměť v systému Linux/Unix pomocí příkazového řádku.
Jak vymazat mezipaměť v systému Linux
Existují tři možnosti, jak vymazat mezipaměť v Linuxu. Vyberte jednu z níže uvedených možností pro vyprázdnění mezipaměti systému Linux podle vašich požadavků.
- Vymažte PageCache, dentry a inody v mezipaměti. Stručně řečeno, vymaže se celá mezipaměť:
sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
- Vymažte dentry a inody pouze v mezipaměti
sync; echo 2 | sudo tee /proc/sys/vm/drop_caches
- Vymažte mezipaměť stránek pouze v mezipaměti
sync; echo 1 | sudo tee /proc/sys/vm/drop_caches
Zde je první příkaz sync
se používá k synchronizaci všech souborů mezipaměti v paměti do trvalého úložiště. Další příkaz je oddělen znakem „;“. Po dokončení prvního příkazu bude spuštěn další příkaz, aby se vymazala mezipaměť.
Naplánujte vymazání mezipaměti pomocí Crontab
Můžete si také naplánovat kukuřičnou úlohu, abyste mezipaměť pravidelně čistili. V systémovém crontab naplánujte následující, aby se v pravidelných intervalech automaticky vyprázdnila mezipaměť.
Otevřete terminál a spusťte příkaz „crontab -e“ pro úpravu crontab:
crontab -e
Připojte níže uvedený záznam k souboru:
0 10 * * * sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
Výše uvedený cron se spustí každou hodinu a vyprázdní mezipaměť vašeho systému.
Na produkčních serverech se nedoporučuje plánovat příkaz clear cache. Může to vést k poškození nebo ztrátě dat. Dejte si proto pozor, než spustíte výše uvedený příkaz v produkčním prostředí.
Jak najít mezipaměť v Linuxu
Použijte zdarma příkaz ke zjištění využití mezipaměti systémem Linux. Výstup příkazu free je jako níže
free -m
Output total used free shared buffers cached Mem: 16050 15908 142 0 12012953 -/+ buffers/cache: 834 15216 Swap: 0 0 0
Zde poslední sloupec zobrazuje mezipaměť (12953 MB) v systému Linux. -m možnost se používá k zobrazení výstupních MB.