производителност

Как да изчистите кеша на Linux

Как да изчистите кеша на Linux
Кешът на файловата система на Linux (кеш на страници) се използва за ускоряване на IO операциите.  При определени обстоятелства администратор или разработчик може да поиска да изчисти ръчно кеша.  В тази статия ще обясним как работи кешът на файловата система на Linux.  След това ще демонстрираме как да наблюдаваме използването на кеша и как да изчистваме кеша.  Ще направим няколко прости експеримента с производителност, за да проверим дали кеш паметта работи според очакванията и че процедурата за изчистване и изчистване на кеша също работи според очакванията.

Как работи кешът на файловата система на Linux

Ядрото запазва определено количество системна памет за кеширане на достъпа до файловата система, за да направи общата производителност по-бърза.  Кешът в linux се нарича Кеш на страници. Размерът на кеша на страниците може да се конфигурира с щедри настройки по подразбиране за кеширане на големи количества дискови блокове.  Максималният размер на кеша и политиките за това кога да се извадят данни от кеша се регулират с параметри на ядрото.  Подходът за кеш на Linux се нарича кеш обратно на запис.  Това означава, че ако данните се записват на диск, те се записват в паметта в кеша и се маркират като замърсени в кеша, докато се синхронизират с диска.  Ядрото поддържа вътрешни структури от данни, за да оптимизира кои данни да се извадят от кеша, когато е необходимо повече място в кеша.

По време на системни повиквания за четене на Linux, ядрото ще провери дали заявените данни се съхраняват в блокове с данни в кеша, което би било успешно попадение в кеша и данните ще бъдат върнати от кеша, без да се прави IO на дисковата система.  За пропускане на кеша данните ще бъдат извлечени от IO системата и кешът ще бъде актуализиран въз основа на политиките за кеширане, тъй като същите тези данни вероятно ще бъдат поискани отново.

Когато се достигнат определени прагове на използване на паметта, задачите на фона ще започнат да записват мръсни данни на диск, за да се уверят, че той изчиства кеша на паметта.  Те могат да окажат влияние върху производителността на приложенията с интензивна памет и CPU и да изискват настройка от администратори и / или разработчици.

Използване на безплатна команда за преглед на използването на кеша

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

# безплатно -м

Това, което виждаме от Безплатно командата по-горе е, че има 7.5 GB RAM на тази система.  От това се използват само 209 MB и 6.5 MB са безплатни.  В буферния кеш се използват 667 MB.  Сега нека се опитаме да увеличим това число, като стартираме команда за генериране на файл от 1 гигабайт и четем файла.  Командата по-долу ще генерира приблизително 100 MB случайни данни и след това ще добави 10 копия на файла заедно в едно голям_файл.

# dd, ако = / dev / random от = / root / data_file count = 1400000
# за i в 'sq 1 10'; направи ехо $ i; cat_file_file >> голям_файл; Свършен

Сега ще се погрижим да прочетем този 1 Gig файл и след това отново да проверим безплатната команда:

# котка голям_файл> / dev / null
# безплатно -м

Виждаме, че използването на буферния кеш се е увеличило от 667 на 1735 мегабайта, което е приблизително 1 гигабайт увеличение на използването на буферния кеш.

Команда на Proc Sys VM Drop Caches

Ядрото на Linux предоставя интерфейс за изпускане на кеша, нека изпробваме тези команди и да видим въздействието върху безплатната настройка.

# ехо 1> / proc / sys / vm / drop_caches
# безплатно -м

Виждаме по-горе, че по-голямата част от разпределението на буферния кеш е освободено с тази команда.

Експериментална проверка, че Drop Caches работи

Можем ли да направим проверка на ефективността на използването на кеша за четене на файла? Нека прочетем файла и го запишем обратно в / dev / null, за да тестваме колко време отнема четенето на файла от диска.  Ще го определим с време команда.  Правим тази команда веднага след изчистване на кеша с командите по-горе.

Отне 8.4 секунди за четене на файла.  Нека го прочетем отново сега, когато файлът трябва да е в кеша на файловата система и да видим колко време отнема сега.

Бум!  Отне само .2 секунди в сравнение с 8.4 секунди, за да го прочетете, когато файлът не е кеширан.  За да проверим, нека повторим това отново, като първо изчистим кеша и след това прочетем файла 2 пъти.

Работи перфектно, както се очакваше.  8.5 секунди за некеширано четене и .2 секунди за кешираното четене.

Заключение

Кешът на страниците се активира автоматично в Linux системи и прозрачно ще направи IO по-бърз, като съхранява наскоро използвани данни в кеша.  Ако искате да изчистите ръчно кеша, което може да се направи лесно, като изпратите команда echo до файловата система / proc, показваща на ядрото да изпусне кеша и да освободи паметта, използвана за кеша.  Инструкциите за изпълнение на командата са показани по-горе в тази статия, а експерименталната проверка на поведението на кеша преди и след промиване също е показана.

Екранен тракпад и указател на мишката на AppyMouse за таблети с Windows
Потребителите на таблети често пропускат показалеца на мишката, особено когато са привични да използват лаптопите. Смартфоните и таблетите със сензоре...
Средният бутон на мишката не работи в Windows 10
The среден бутон на мишката ви помага да превъртате дълги уеб страници и екрани с много данни. Ако това спре, добре ще свършите да използвате клавиату...
Как да промените левия и десния бутон на мишката на компютър с Windows 10
Напълно нормално е всички устройства на компютърни мишки да са ергономично проектирани за десничари. Но има налични устройства за мишка, които са спец...