Нулиране на кеша в Linux

Нулиране на кеша в Linux

Събота, 28 март 2015 г. 00:00

Въпреки че в интернет има войни за „трябва ли изобщо да нулирам кеша в Linux“, аз отговорих на този въпрос за себе си. Да, понякога е необходимо. Да приемем, че имате сървър, който изпълнява CentOS и изпълнява монотонни прости задачи всеки ден. Но веднъж седмично той едновременно изпълнява много ресурсоемка задача, която силно зарежда процесора и „изяжда“ цялата памет (за кеш). Разбира се, грамотните хора знаят какво е това буфер, и как работи. Но има смисъл да съхранявате файлови данни в паметта, което в най-добрия случай ще се изисква след една седмица и най-вероятно просто ще остарее след няколко дни.!?

Моето предложение: да се допълнят скриптове на редки ресурсоемки задачи с команди за изчистване на кеша.

Препращам следните задачи към ресурсоемки задачи, които запушват кеша с ненужна информация, при условие, че се изпълняват рядко:

  • Архивиране (в моя случай tar може да „изяде“ цялата свободна памет)
  • Актуализиране чрез yum
  • Анализиране на статистика на уеб сървъра и генериране на отчети

Както знаете, във версия на ядрото 2.6.16 (и по-нова версия) се появи механизъм, който принуждава ядрото да изтрие кеша на страницата и/или кешовете на inode + dentry. След изпълнение на командата се освобождава значително количество RAM. Има легенди, че от древни времена нещастните администратори са писали специални скриптове, които са се опитвали да разпределят тонове памет с единствената цел да изгонят кеша от паметта:)