Сообщите Linux к файлам кэша в своп-файле

Взгляд на сеть повсеместности, у них есть очень хорошие точки доступа PoE. У меня есть два из них, один смонтированный снаружи в Бретани, и я беру другой в отпуске. Я рекомендую.

1
задан 25 August 2011 в 00:44
1 ответ

Проблема с тем, что вы пытаетесь сделать, заключается в том, что кеш VFS полностью контролируется внутри ядра, и ваше проблемное пространство очень нишевое - в общем, размещение кеша в своп полностью противоречит цели кеширования (хотя я согласен, что ваш вариант использования допустим). Я просто хочу сказать, что очень маловероятно, что то, что вы хотите сделать, в настоящее время поддерживается в ядре (и я, конечно, никогда не слышал никаких шумов о том, что вы хотите сделать, возможно).

Если бы вы использовали Используя технологию «псевдо» виртуализации, такую ​​как qemu, вы сможете «перегрузить» память, используемую виртуальными машинами. Таким образом, память, используемая виртуальной машиной, будет более видимой для хоста как «обычная» память процесса, и тогда вы сможете использовать хост ' s место подкачки, чтобы вывести его, когда он не нужен. Это создает риск замены машины до смерти, если процессам на виртуальных машинах действительно нужна вся эта память или если давление в кеш-памяти на виртуальных машинах было сильным, но это могло работать с некоторой осторожной настройкой.

Любые попытки управлять такого рода вещь в пользовательском пространстве вряд ли сработает, потому что кэширование VFS - это все на уровне ядра, и (опять же) варианты использования для управления им в пользовательском пространстве очень нишевые. Если бы это были данные приложения, которые вы пытались кэшировать, вы могли бы предоставить кеш для данных в пользовательском пространстве (если вам это нужно в файловой системе, вы можете использовать FUSE, но хранилище данных для конкретного приложения будет работать лучше), но это много работы (кэширование сделать не так просто) и не будет работать, если вам нужно кэшировать корневую файловую систему.

Если вы все же решите, что это того стоит, я думаю, вы потратите много времени на написание и отладку собственного кода уровня ядра для поддержки этого варианта использования. Вместо того, чтобы обобщать проблему «хранить кеш в свопинге» (что сразу же заставит многих людей защитить себя), может быть проще некий механизм «кэширования устройства SAN», который использует пространство подкачки, а не VFS в -кэш памяти. Обратите внимание, я говорю «проще», а не «легко» - это все еще требует много работы.

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

3
ответ дан 3 December 2019 в 19:20

Теги

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