Hay muchas formas de usar zram, aunque por no estar pendiente de cambios futuros en la configuración de momento me he decantado por usar el servicio de systemd contenido en el paquete systemd-arch-units.
El problema es que dicho script no detecta correctamente la cantidad de procesadores del sistema. Para apañarlo se puede crear un nuevo archivo zramctrl
$ sudo mkdir /etc/systemd/scripts $ sudo cp /usr/lib/systemd/scripts/zramctrl /etc/systemd/scripts/zramctrl
Se modifica para que no evalue el número de procesadores y se especifica manualmente "cpucount=1":
#!/bin/sh start() { exec awk ' FILENAME == "/proc/meminfo" && $1 == "MemTotal:" { mem_total = (0 + $2) * 1024 next } END { cpucount = 1 mem_per_cpu = sprintf("%d", mem_total / cpucount) system("modprobe zram zram_num_devices=" cpucount) for (i = 0; i < cpucount; i++) { print mem_per_cpu > "/sys/block/zram" i "/disksize" system("mkswap /dev/zram" i " -L zram" i) swapdevs = swapdevs " /dev/zram" i } system("swapon -p 100" swapdevs) } ' /proc/cpuinfo /proc/meminfo } stop() { exec awk ' FNR > 1 && $1 ~ /^\/dev\/zram[0-9]+$/ { activeswaps = activeswaps " " $1 } END { system("swapoff" activeswaps) } ' /proc/swaps } case $1 in start|stop) "$1" ;; esac
Parece ser que en la versión del kernel 3.2.x el parámetro del módulo zram que indica el número de dispositivos a crear es "zram_num_devices" aunque posteriormente lo han vuelto a cambiar a "num_devices". Issue 101: zram.num_devices parameter ignored in kernel 3.2.x
Posteriormente modificamos el servicio zram.service
$ sudo cp /usr/lib/systemd/system/zram.service /etc/systemd/system/zram.service
Para que contenga la ruta del nuevo script:
[Unit] Description=Compressed RAM block devices [Service] Type=oneshot ExecStart=/etc/systemd/scripts/zramctrl start ExecStop=/etc/systemd/scripts/zramctrl stop RemainAfterExit=yes [Install] WantedBy=multi-user.target
Con esto ya podemos probar su funcionamiento
$ sudo systemctl start zram.service
o activarlo para que se inicie automáticamente
$ sudo systemctl enable zram.service
No hay comentarios:
Publicar un comentario