Здравствуйте,
Я хочу поговорить о страничном кэше с занудной бухгалтерией байтиков и электричества.
У меня есть десктоп, который запускает обычные десктопьи приложения и ещё раздаёт торренты. Постоянное чтение файлов, раздаваемых через торрент, тянет их в страничный кэш /page cache/, но hit rate у этого кэша заведомо стремится к 0, а ресурсы заняты зазря.
В системе 16 ГБ оперативки, приложениями обычно занято не более 4-6 ГБ. Но с забитым под завязку кэшем система аж swap выдавливает, вот картинка за неделю.
С 12 января я попробовал запускать торрент-клиент через nocache и терапевтический эффект минимальный: на пару гигабайт свободнее. Тем не менее, раздаваемых через файлов в кэше полно:
→ find ./torrent/ -type f -exec cachestats {} \; | awk -F'[ /]' '{s+=$4} END {printf("%d pages in cache * 4K\n",s)}'
2235489 pages in cache * 4K
2235489 * 4 / 1024^2 = 8.53 ГБ оперативки под мусор.
Есть ли способ органичить страничный кэш для отдельного тома или приложения? Я только за, чтобы в кэше были нужные файлы, и не хочу крутить глобальный vfs_cache_pressure, но вот лишнее держать — сомневаюсь.
А стоит ли вообще внимания эта возня? Или всё это экономия на спичках и ядру самому виднее, что куда класть?