Запустить подкачку вручную?

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

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

cat /proc/meminfo

MemTotal:       528099208 kB
MemFree:        33819676 kB
MemAvailable:   30995036 kB
Buffers:           65056 kB
Cached:           368868 kB
SwapCached:      4978016 kB
Active:         383870632 kB
Inactive:       71255296 kB
Active(anon):   383654260 kB
Inactive(anon): 71140760 kB
Active(file):     216372 kB
Inactive(file):   114536 kB
Unevictable:      160824 kB
Mlocked:          160824 kB
SwapTotal:      1875374420 kB
SwapFree:       1576041808 kB
Dirty:               128 kB
Writeback:             0 kB
AnonPages:      450155280 kB
Mapped:           185764 kB
Shmem:             92400 kB
KReclaimable:    1316628 kB
Slab:            7796824 kB
SReclaimable:    1316628 kB
SUnreclaim:      6480196 kB
KernelStack:       49616 kB
PageTables:      1746424 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    2139350296 kB
Committed_AS:   1255929500 kB
VmallocTotal:   34359738367 kB
VmallocUsed:     6192420 kB
VmallocChunk:          0 kB
Percpu:          1302144 kB
HardwareCorrupted:     0 kB
AnonHugePages:  176281600 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:      72
HugePages_Free:       72
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:          147456 kB
DirectMap4k:    49376056 kB
DirectMap2M:    406616064 kB
DirectMap1G:    81788928 kB
-1
задан 29 September 2021 в 18:53
1 ответ

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

Более высокие значения 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 ГБ. Завершите работу гостей перед уменьшением объема их памяти. Отсутствие избыточной подписки требует больших затрат памяти, но имеет более стабильную производительность и проще в обслуживании.

0
ответ дан 1 October 2021 в 18:45

Теги

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