Скажите ядру, чтобы он сильно кешировал конкретный каталог

Этот вопрос является перефразировкой Оптимизация производительности EXT4 .

У меня есть каталог, который содержит файлы сборки, большинство очень маленькие, но на общую сумму 5,6G.

Я обычно снова и снова обращаюсь к одному и тому же подмножеству файлов (несколько тысяч, несколько десятков мегабайт). Подмножество меняется ежедневно (разные проекты, разные версии библиотек). То, что занимает больше времени, когда я использую его, похоже, ищет диск. Например, если я делаю du дважды второй раз, это занимает столько же времени, сколько и первый, и активность диска аналогична.

В идеале я бы хотел сказать ядру выделить X Мб для метаданных и Y для данных в папке, например, параметры для кэша nfs.

Возможно ли это каким-либо иным способом, кроме монтирования nfs с локального хоста и его кэширования на виртуальный диск?

6
задан 13 April 2017 в 15:23

2 ответа

Я полагаю, что вам нужно выполнить полное чтение () и / или posix_fadvise () для данных, которые, как вы знаете, понадобятся на следующий день.

Если вы не знаете, или полученные данные слишком велики для кэширования, вы уже знаете ответ. Ядро не кэширует все это, потому что для этого недостаточно памяти.

0
ответ дан 13 April 2017 в 15:23

Я думаю, что это вопрос, на который нет положительного ответа. Linux не предоставляет какого-либо механизма для указания того, сколько метаданных и данных следует кэшировать для каждого каталога на основе файловых систем, таких как ext2, ext3, ext4, xfs и т. Д.

0
ответ дан 13 April 2017 в 15:23

Другие вопросы по тегам:

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