Нулиране на кеша в Linux
Нулиране на кеша в Linux
Събота, 28 март 2015 г. 00:00
Въпреки че в интернет има войни за „трябва ли изобщо да нулирам кеша в Linux“, аз отговорих на този въпрос за себе си. Да, понякога е необходимо. Да приемем, че имате сървър, който изпълнява CentOS и изпълнява монотонни прости задачи всеки ден. Но веднъж седмично той едновременно изпълнява много ресурсоемка задача, която силно зарежда процесора и „изяжда“ цялата памет (за кеш). Разбира се, грамотните хора знаят какво е това буфер, и как работи. Но има смисъл да съхранявате файлови данни в паметта, което в най-добрия случай ще се изисква след една седмица и най-вероятно просто ще остарее след няколко дни.!?
Моето предложение: да се допълнят скриптове на редки ресурсоемки задачи с команди за изчистване на кеша.
Препращам следните задачи към ресурсоемки задачи, които запушват кеша с ненужна информация, при условие, че се изпълняват рядко:
- Архивиране (в моя случай tar може да „изяде“ цялата свободна памет)
- Актуализиране чрез yum
- Анализиране на статистика на уеб сървъра и генериране на отчети
Както знаете, във версия на ядрото 2.6.16 (и по-нова версия) се появи механизъм, който принуждава ядрото да изтрие кеша на страницата и/или кешовете на inode + dentry. След изпълнение на командата се освобождава значително количество RAM. Има легенди, че от древни времена нещастните администратори са писали специални скриптове, които са се опитвали да разпределят тонове памет с единствената цел да изгонят кеша от паметта:)