Должен ли zram резервировать память в RAM?
Я настроил zram на своем компе.
У меня на компе 14GB физической RAM.
Я настроил zram, вот скрипт настройки:
#!/bin/bash
modprobe zram num_devices=4
echo '5500M' > /sys/block/zram0/disksize
echo '5500M' > /sys/block/zram1/disksize
echo '5500M' > /sys/block/zram2/disksize
echo '5500M' > /sys/block/zram3/disksize
mkswap /dev/zram0
swapon /dev/zram0 -p 10
mkswap /dev/zram1
swapon /dev/zram1 -p 10
mkswap /dev/zram2
swapon /dev/zram2 -p 10
mkswap /dev/zram3
swapon /dev/zram3 -p 10
В итоге у меня появилось 21GB swap памяти:

Но я ожидал, что объем доступной RAM должен уменьшиться. Но этого не произошло.
- Почему zram не зарезервировал часть RAM для своих виртуальных девайсов?
- Почему я смог создать zram на 21GB, когда у меня физической RAM 14GB?
- Как понять, что zram работает? Как увидеть, что он зарезервировал память для swap?
Ответы (1 шт):
Автор решения: eri
→ Ссылка
Пустой файл подкачки очень хорошо сжимается, так как не содержит данных. Когда в подкачку уйдут какие-то данные, то эти данные сожмутся и займут место в оперативной памяти. В какойто момент zram будет нехватать памяти и он будет вытеснять другие приложения в свап, от этого толстеть, опять непомещаться и снова кушатьчужую память пока не наступит OOM и кто-то умрет.