Должен ли 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 памяти:
htop

Но я ожидал, что объем доступной RAM должен уменьшиться. Но этого не произошло.

  1. Почему zram не зарезервировал часть RAM для своих виртуальных девайсов?
  2. Почему я смог создать zram на 21GB, когда у меня физической RAM 14GB?
  3. Как понять, что zram работает? Как увидеть, что он зарезервировал память для swap?

Ответы (1 шт):

Автор решения: eri

Пустой файл подкачки очень хорошо сжимается, так как не содержит данных. Когда в подкачку уйдут какие-то данные, то эти данные сожмутся и займут место в оперативной памяти. В какойто момент zram будет нехватать памяти и он будет вытеснять другие приложения в свап, от этого толстеть, опять непомещаться и снова кушатьчужую память пока не наступит OOM и кто-то умрет.

→ Ссылка