Как и где метаданные файловой системы кэшируются в Linux

Хорошо просто зафиксированный это. Найденный ответом в этом вопросе. Я просто должен был работать:

sudo mkfs -t vfat /dev/sdc1

и флеш-карта была распознана снова.

6
13.04.2017, 15:13
2 ответа

Это потому, что ваш тест недостаточно. Бег Найти. просто называет GEGDENTS () на дереве каталога. Каталог в этом случае - это просто файл, который содержит записи каталога и, таким образом, сохраняется в кэше страницы. Обратите внимание, что вы не делаете ничего, чтобы на самом деле доступ Файлы, которые вы пытаетесь вступить в кэш таким образом.

Ваш тест в основном кэширует все каталоги в дереве файловых систем и ничего другого.

Попробуйте пройти тест Найти Среднее задание. Например, заставить его вызывать lStat для каждого файла, и вы увидите другое поведение.

В моем тесте существует миллион файлов в этом каталоге.

[root@home test]# echo 3 >/proc/sys/vm/drop_caches 
[root@home test]# time find ./tmp -printf "%p %c\n" >/dev/null

real    0m16.443s
user    0m2.123s
sys 0m9.320s
[root@home test]# time find ./tmp -printf "%p %c\n" >/dev/null

real    0m2.704s
user    0m1.224s
sys 0m1.479s
[root@home test]# echo 1 >/proc/sys/vm/drop_caches 
[root@home test]# time find ./tmp -printf "%p %c\n" >/dev/null

real    0m3.791s
user    0m1.359s
sys 0m1.756s

Примечание. В последнем тесте требуется немного дольше, я представляю, что это напрямую связано со всеми чтением самого файла каталога «, а не потому, что кэш для кухни зубец и inode не существует.

5
27.01.2020, 20:28

На моей системе (CentOS 7 x86_64), Найти. / USR / , кажется, загружается только кэш для дамбии, а не на PageCache.

Давайте начнем сформировать «чистое» состояние:

echo 3 > /proc/sys/vm/drop_caches

cat /proc/meminfo | grep -i "^cache\|Slab"
Cached:           280432 kB
Slab:              66632 kB

сейчас Время найти. / usr /> / dev / null 2> / dev / null

real    0m5.126s
user    0m0.580s
sys     0m2.939s

cat /proc/meminfo | grep -i "^cache\|Slab"
Cached:           283308 kB
Slab:             288656 kB

Только плита увеличивается по размеру. Теперь давайте отбросьте I / DCACHE:

echo 2 > /proc/sys/vm/drop_caches

cat /proc/meminfo | grep -i "^cache\|Slab"
Cached:           282704 kB
Slab:              66428 kB

Размер плиты резко уменьшается. Время найти. / usr /> / dev / null 2> / dev / null Дайте

real    0m5.122s
user    0m0.624s
sys     0m2.905s

так же, как указано выше. Снимите PageCache только с

echo 1 > /proc/sys/vm/drop_caches

time find . /usr/ > /dev/null 2>/dev/null
real    0m0.848s
user    0m0.256s
sys     0m0.575s

, как вы можете видеть, бросая PageCache только работает Aft Найти Скорость, которая остается намного быстрее, чем раньше.

0
27.01.2020, 20:28

Теги

Похожие вопросы