В некоторых ситуациях необходимо выполнить операцию без влияния на кэш файловой системы, например, скопировать данные без их попадания в кэш. Для отключения кэша на уровне отдельных команд можно использовать утилиту [[https://github.com/Feh/nocache nocache]], перехватывающую вызовы open и close, и выполняя принудительно системый вызов posix_fadvise c параметром POSIX_FADV_DONTNEED.В качестве одной из [[http://insights.oetiker.ch/linux/fadvise.html областей использования]] доступа к ФС c отключением кэширования можно отметить выполнение резервного копирования без влияния на содержимое кэша - в обычных условиях копирование большого числа файлов вытеснит часть других данных из кэша, при этом заранее известно, что новые данные точно не будут востребованы в ближайшее время. Избежать оседания данных в кэше при копировании можно выполнив следующую команду:
./nocache cp -a ~/ /mnt/backup/home-$(hostname)
Другим применением может быть проведение тестов с исключением влияния кэша ФС.
URL: https://github.com/Feh/nocache
Обсуждается: http://www.opennet.me/tips/info/2770.shtml
$ time ./nocache find /media/kernel/linux/
...
real 0m12.242s
user 0m1.219s
sys 0m0.868s$ time ./nocache find /media/kernel/linux/
real 0m1.963s
user 0m1.015s
sys 0m0.475sИ че? И где?
Под рутом выполните.
Неа, оно работает только на open(), с правами на запись, ну и соответственно wirte();
> Неа, оно работает только на open(), с правами на запись, ну и
> соответственно wirte();Ну вот дирлист и "не закэшировался" :)
> И че? И где?Очевидно же, имеется в виду влияние на _другие процессы в системе через _вымывание кеша.
Так что пускай А:{1: сборку ядра; 2: ну, прибумай сам чего-н... полезное! нужное всем!!} + Б:{1: ничего больше; 2: копирование много больших файлов из from/ в to/ с удалением в цикле; 3: то же, что в 2, с _nohache_}. Ну, само собой, всё после холожной перезагрузки, несколько раз, отбрасывая оут-лаяры, и т.п. статистические must-have.
Воооот... Потом всё это в табличку и на pavlinux.ru -- фороникс слюной захлеюнётся.
А, да, сравнивать влияние на А: вариантов Б: и писать Умный Вывод в конце.
>[оверквотинг удален]
> _вымывание кеша.
> Так что пускай А:{1: сборку ядра; 2: ну, прибумай сам чего-н... полезное!
> нужное всем!!} + Б:{1: ничего больше; 2: копирование много больших файлов
> из from/ в to/ с удалением в цикле; 3: то же,
> что в 2, с _nohache_}. Ну, само собой, всё после холожной
> перезагрузки, несколько раз, отбрасывая оут-лаяры, и т.п. статистические must-have.
> Воооот... Потом всё это в табличку и на pavlinux.ru -- фороникс слюной
> захлеюнётся.
> А, да, сравнивать влияние на А: вариантов Б: и писать Умный Вывод
> в конце.Митрофаныч, обсуждение переплыло в житхаб, тут уже устарелые новости!
Будем мутить некэширование dirent, там чувак жаловался, что на 4 мегах оперативки,
рекурсивный обход 200 мильонов файлов это жопа для кэша!
real 0m12.242s
real 0m1.963s
Полезно, спасибо!
Спасибо за инфу.