Како очистити предмеморију на Линук -у

How Clear Cache Linux



Предмеморија датотечног система линук (Паге Цацхе) се користи за убрзавање ИО операција. Под одређеним околностима администратор или програмер би можда желео да ручно обрише кеш меморију. У овом чланку ћемо објаснити како кеш меморија Линук датотечног система функционише. Затим ћемо показати како надзирати употребу кеша и како очистити кеш меморију. Урадићемо неколико једноставних експеримената са перформансама да бисмо проверили да кеш ради како се очекује и да поступак испирања и брисања кеша такође ради како се очекује.

Како функционише предмеморија датотечног система Линук

Језгро задржава одређену количину системске меморије за кеширање приступа диску система датотека како би се укупне перформансе убрзале. Кеш меморија у линук -у назива се Страница кеша . Величина предмеморије странице може се конфигурирати с великодушним заданим поставкама омогућеним за кеширање велике количине блокова диска. Максимална величина кеша и политике када треба избацити податке из кеша могу се подесити параметрима језгре. Приступ кеш меморије Линука назива се кеш за писање назад. То значи да ако се подаци уписују на диск, они се записују у меморију у кеш меморију и означавају као прљави у кешу све док се не синхронизују са диском. Језгро одржава интерне структуре података ради оптимизације података које треба избацити из кеша када је потребно више простора у кешу.







Током читања системских позива за читање Линука, језгро ће проверити да ли су тражени подаци ускладиштени у блоковима података у кешу, што би био успешан погодак у кешу и подаци ће бити враћени из кеша без икаквог ИО -а на систем диска. У случају пропуштања кеша, подаци ће бити преузети из ИО система, а кеш ће се ажурирати на основу смерница кеширања јер ће се ти исти подаци вероватно поново тражити.



Када се достигну одређени прагови употребе меморије, позадински задаци ће почети уписивати прљаве податке на диск како би се осигурало да брише меморију. Ово може имати утицаја на перформансе апликација са интензивном меморијом и процесором и захтевају подешавање од стране администратора и или програмера.



Коришћење бесплатне команде за преглед коришћења кеша

Можемо користити бесплатну команду из командне линије за анализу системске меморије и количине меморије додељене кеширању. Погледајте наредбу испод:





#бесплатно

Оно што видимо из бесплатно горња наредба је да на овом систему постоји 7,5 ГБ РАМ -а. Од тога се користи само 209 МБ, а 6,5 МБ је бесплатно. 667 МБ се користи у међумеморији. Покушајмо сада повећати тај број покретањем наредбе за генерисање датотеке од 1 гигабајта и читањем датотеке. Команда испод генерише приближно 100 МБ случајних података, а затим додаје 10 копија датотеке заједно у једну ларге_филе .



# дд иф =/дев/рандом оф =/роот/дата_филе цоунт = 1400000
# фор и у `сек 1 10`; до ецхо $ и; цат дата_филе >> ларге_филе; Готово

Сада ћемо обавезно прочитати ову 1 Гиг датотеку, а затим поново проверити бесплатну команду:

# мачка велика_датотека> /дев /нулл
# бесплатно -м

Можемо видети да је употреба кеш меморије порасла са 667 на 1735 мегабајта, што је повећање од око 1 гигабајта у коришћењу бафер кеша.

Наредба Проц Сис ВМ Дроп Цацхес

Језгро Линука пружа интерфејс за испуштање кеша, испробајмо ове команде и видимо утицај на бесплатну поставку.

# ецхо 1>/проц/сис/вм/дроп_цацхес
# бесплатно -м

Горе можемо видети да је већина алокације кеш меморије ослобођена овом командом.

Експериментална верификација да Дроп Цацхес ради

Можемо ли извршити проверу перформанси помоћу кеша за читање датотеке? Прочитајмо датотеку и запишите је назад у /дев /нулл како бисмо тестирали колико је времена потребно за читање датотеке са диска. Одмерићемо време са време команда. Ову команду радимо одмах након брисања предмеморије помоћу наредби изнад.

Читање датотеке трајало је 8,4 секунде. Прочитајмо га сада поново када би датотека требало да се налази у кешу система датотека и да видимо колико сада траје.

Боом! Читање је трајало само 0,2 секунде у поређењу са 8,4 секунде када датотека није била кеширана. Да бисмо потврдили, поновимо ово поново тако што ћемо прво очистити предмеморију, а затим прочитати датотеку 2 пута.

Радио је савршено како се очекивало. 8,5 секунди за читање без кеширања и 0,2 секунде за читање у кешу.

Закључак

Кеш страница је аутоматски омогућена на Линук системима и транспарентно ће убрзати ИО складиштењем недавно коришћених података у кешу. Ако желите ручно очистити кеш меморију, што се може лако урадити слањем ецхо команде у /проц датотечни систем, указујући језгру да испушта кеш меморију и ослободи меморију која се користи за кеш. Упутства за покретање наредбе приказана су горе у овом чланку, а такође је приказана и експериментална валидација понашања кеша пре и после испирања.