У меня есть сервер с 16 ГБ ОЗУ, на котором запущено несколько виртуальных машин Linux (около 10), которые выполняют несколько различных задач. Эти машины с конфигурацией по умолчанию будут заполнять память, которую я им предоставляю, кешем до максимума.
Даже при том, что это желательное поведение для физических хостов, в моей настройке этот кеш фактически потребляет реальную оперативную память хоста, которая не может быть освобождена от хоста, и вынуждает меня устанавливать относительно небольшое количество оперативной памяти для виртуальных машин (не более чем (16 - кеш хоста) / количество виртуальных машин
). Это весьма нежелательно, поскольку система теряет гибкость, что делает невозможным обработку спорадических запросов ОЗУ от конкретных виртуальных машин.
Единственный подход, который приходит мне в голову, - это ограничить объем ОЗУ, который ядро может использовать для кэширования (или сделать кеш срок действия истекает раньше), но я не нашел документации о том, как это сделать. Большинство сообщений на форуме относятся к linuxatemyram.com или тому подобному, и мне кажется, что в / proc / sys / vm / тоже нет какого-либо соответствующего параметра.
Может быть, кто-нибудь может предложить некоторые идеи по этому поводу? Я был бы очень благодарен.
Вы можете изменить значение / proc / sys / vm / vfs_cache_pressure
на значение больше 100 (значение по умолчанию). При увеличении значения свыше 100 он
заставляет ядро отдавать предпочтение восстановлению дентри и inodes .