Рейтинг:-1

Вручную активировать swappiness?

флаг pk

Я играю с ZFS на Proxmox и заметил, что подкачка, кажется, никогда не срабатывает. Значение подкачки в настоящее время установлено на 50, но никогда не меняется, пока я не достигну 100% использования ОЗУ, действуя так, как если бы подкачка была установлена ​​​​на 0.

Как я могу вручную запустить swappiness? Единственный способ, которым я могу это сделать, - установить что-то вроде https://github.com/julman99/eatmemory съесть системную память более чем на 100%

кот /proc/meminfo

ПамятьВсего: 528099208 КБ
MemFree: 33819676 КБ
Доступно: 30995036 КБ
Буферы: 65056 КБ
Кэшировано: 368868 КБ
SwapCached: 4978016 КБ
Активный: 383870632 КБ
Неактивно: 71255296 КБ
Активный (анон): 383654260 КБ
Неактивный(анон): 71140760 КБ
Активный (файл): 216372 КБ
Неактивный (файл): 114536 КБ
Неизбежный: 160824 КБ
Заблокировано: 160824 КБ
SwapTotal: 1875374420 КБ
SwapFree: 1576041808 КБ
Грязный: 128 КБ
Обратная запись: 0 КБ
Страницы: 450155280 КБ
Нанесено на карту: 185764 КБ
Шмем: 92400 кБ
KReclaimable: 1316628 КБ
Плита: 7796824 КБ
SReclaimable: 1316628 КБ
SUnreclaim: 6480196 КБ
Стек ядра: 49616 КБ
PageTables: 1746424 КБ
NFS_Unstable: 0 КБ
Отказ: 0 КБ
WritebackTmp: 0 КБ
Предел фиксации: 2139350296 КБ
Committed_AS: 1255929500 КБ
VmallocTotal: 34359738367 КБ
VmallocUsed: 6192420 КБ
VmallocChunk: 0 КБ
Процпу: 1302144 КБ
HardwareCorrupted: 0 kB
AnonHugePages: 176281600 КБ
Страниц ShmemHuge: 0 kB
ShmemPmdMapped: 0 КБ
FileHugePages: 0 КБ
FilePmdMapped: 0 КБ
CmaВсего: 0 КБ
CmaFree: 0 КБ
HugePages_Total: 72
HugePages_Free: 72
HugePages_Rsvd: 0
HugePages_Surp: 0
Огромный размер страницы: 2048 КБ
Hugetlb: 147456 КБ
DirectMap4k: 49376056 КБ
DirectMap2M: 406616064 КБ
DirectMap1G: 81788928 КБ
Matthew Ife avatar
флаг jo
Я подозреваю, что ваши ожидания относительно того, что делает swappiness, неверны. Чего вы хотите достичь?
djdomi avatar
флаг za
установите подкачку на 100, но убедитесь, что у вас есть ssd или nvme;) Linux не использует подкачку, если у нее достаточно оперативной памяти, это не окна, которые все время используют файлы подкачки
Toodarday avatar
флаг pk
@MatthewIfe Я в основном хочу, чтобы всегда было определенное количество свободной оперативной памяти. У моей машины 256 ГБ ОЗУ. Я пытаюсь заставить память поменять местами страницы, чтобы достичь этого, но вручную. Я также пробовал ```vm.zone_reclaim_mode=1``` без какой-либо помощи.
Toodarday avatar
флаг pk
Диск @djdomi NVMe предназначен для подкачки.Это узел Proxmox, на котором запущено несколько виртуальных машин Linux/Windows (KVM).
Toodarday avatar
флаг pk
Чтобы добавить, что в моей текущей системе используется 230/256 ГБ ОЗУ, своп еще не используется.
djdomi avatar
флаг za
@toodardwy, а с какой проблемой вы столкнулись? Никаких чрезмерных обязательств, своп не используется.
Matthew Ife avatar
флаг jo
Нет причин не использовать память, если она свободна, и вы не указываете причину, по которой она должна быть свободна / для чего вы хотите использовать память.
Toodarday avatar
флаг pk
@MatthewIfe Причина в том, что если я создам другую виртуальную машину, когда ОЗУ будет заполнено на 99%, она не загрузится. Мне нужно, чтобы всегда было не менее 10% свободной оперативной памяти. Есть ли другой способ добиться этого? Я надеялся, что будет простая команда для запуска
Matthew Ife avatar
флаг jo
@Toodarday Пожалуйста, приведите пример `/proc/memfino`, когда система использует всю память. У меня сложилось впечатление, что вы просматриваете кэшированные страницы и, если возможно, приводите пример системы, которая не загружается из-за переполнения памяти.
Toodarday avatar
флаг pk
Добавлен вывод еще одного узла выше
Рейтинг:0
флаг cn

swappiness не требует использования пространства подкачки. Это также не спасет вас от нехватки памяти.

Более высокие значения обмен поощряет восстановление анонимных страниц, а не только кеша страниц. Но для ZFS в Linux это мало что дает. не использует кеш страниц Linux.

Я в основном хочу, чтобы всегда было определенное количество свободной оперативной памяти. ... К добавить, что моя система использует 230/256 ГБ ОЗУ без подкачки используется еще. ... если я создам другую виртуальную машину, когда ОЗУ будет на 99% он не загружается.

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

Ваши 230/256 ГБ используются на 90%, намного больше, чем это может привести к нехватке памяти, что не очень хорошо для производительности. Что может потребовать ограничения гостевой памяти, 56 x 4 ГБ, чтобы составить некоторые числа. Достаточно ли оставшейся пары десятков ГБ для запуска ядра гипервизора и еще есть некоторый резерв, вы можете выяснить при тестировании.

Редактировать: из meminfo ваш 500-гигабайтный хост испытывает некоторую нехватку памяти и выгружается.

  • MemAvailable на уровне 5,8% от общего числа является низким. 29 ГБ для работы на 500-гигабайтном хосте — это не очень много.
  • SwapTotal минус SwapFree показывает 285 ГБ использования пространства подкачки. 1788 ГБ общего объема подкачки означает, что в ближайшее время он не закончится. Помните, что большинство постоянных хранилищ на несколько порядков медленнее, чем DRAM.
  • Кэширование 0,4 ГБ в абсолютных цифрах довольно мало. В соответствии с использованием ZFS в Linux, в котором не используется обычный кеш страниц Linux VFS.В результате swappiness tunable почти ничего не делает в этой среде. Если вы сбрасываете кеши вручную, не делайте этого, это может снизить производительность.

Замена осуществляется наборами страниц в то время, когда это необходимо. Хост не будет внезапно освобождать все 100 ГБ гостевой системы, когда потребности гостевой памяти ниже. Это было бы очень дорого.

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

Убедитесь, что на хосте доступно > 100 ГБ ОЗУ (не считая подкачки), прежде чем запускать гостевую систему на 100 ГБ. Завершите работу гостей перед уменьшением объема их памяти. Отсутствие избыточной подписки требует больших затрат памяти, но имеет более стабильную производительность и проще в обслуживании.

Toodarday avatar
флаг pk
У меня есть проблема: https://i.gyazo.com/83a5033c9b74c8319227d804862f0976.png https://i.gyazo.com/cb1a8f56f44f39d0a3b0c7be54188a20.png Эта виртуальная машина сбрасывает кеш каждый час, но, как вы можете видеть, система резервирует 15 ГБ БАРАН. Как работает proxmox, если я запускаю виртуальную машину, выделяю ей 100 ГБ ОЗУ, использую все, что возвращается ниже 1 ГБ, и удаляю кеш, в то время как в графическом интерфейсе отображается менее 1 ГБ ОЗУ, используемое сейчас, система резервирует все 100 ГБ до подачи питания. вниз. Мне нужно обменять это. Полеты на воздушном шаре для меня не вариант.
John Mahowald avatar
флаг cn
Смотрите мою правку. Я сомневаюсь, что память легко восстановить, не отключив гостевую систему и не уменьшив ее размер.

Ответить или комментировать

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