Configuración de swap con zram
Para usar dispositivos zram en la configuración de swap en Fedora es tan sencillo como instalar el paquete zram y configurar el fichero /etc/zram.conf con el porcentaje de memoria que asignaremos como swap pero en otras distribuciones lo más sencillo es configurar una regla de udev para asignar la memoria que queramos, formatear el dispositivo con mkswap y configurarlo en /etc/fstab con una prioridad alta para que se use preferiblemente antes que la swap en disco.
Para estas distribuciones donde no es tan sencillo como instalar un paquete y arrancar un servicio, pongo este script donde uso 1024M de memoria para swap con algoritmo de compresión lz4:
echo "zram" > /etc/modules-load.d/zram.conf
echo "options zram num_devices=1" > /etc/modprobe.d/zram.conf
echo 'KERNEL=="zram0", ATTR{disksize}="1024M", ATTR{comp_algorithm}="lz4", \
RUN="/sbin/mkswap /dev/zram0", TAG+="systemd"' > /etc/udev/rules.d/99-zram.rules
echo "/dev/zram0 none swap defaults,pri=1000 0 0" >> /etc/fstab
Hay que tener en cuenta la ruta del comando mkswap, que en derivados de RedHat está en /sbin, y la cantidad máxima de memoria que queremos asignar como swap comprimida, en este ejemplo es 1024M. El algoritmo de compresión usado por defecto es lzo pero lz4 es más rápido al comprimir / descomprimir. Los algoritmos de compresión disponibles dependen de las opciones de compilación del kernel usado. Pueden consultarse con el comando cat /sys/block/zram0/comp_algorithm
Al reiniciar el sistema el comando zramctl debe mostrarnos el dispositivo /dev/zram0 con la memoria usada tras comprimir y lo que ocuparía sin comprimir. El comando cat /proc/swaps debe mostrar los dispositivos de swap configurados, el uso de cada uno y su prioridad. Se hará uso de dispositivos de swap por orden de prioridad de mayor a menor
Recordar que si se hace un uso intensivo de swap habrá un mayor uso de CPU al comprimir / descomprimir las páginas de memoria que entran o salen del dispositivo zram
Para estas distribuciones donde no es tan sencillo como instalar un paquete y arrancar un servicio, pongo este script donde uso 1024M de memoria para swap con algoritmo de compresión lz4:
echo "zram" > /etc/modules-load.d/zram.conf
echo "options zram num_devices=1" > /etc/modprobe.d/zram.conf
echo 'KERNEL=="zram0", ATTR{disksize}="1024M", ATTR{comp_algorithm}="lz4", \
RUN="/sbin/mkswap /dev/zram0", TAG+="systemd"' > /etc/udev/rules.d/99-zram.rules
echo "/dev/zram0 none swap defaults,pri=1000 0 0" >> /etc/fstab
Hay que tener en cuenta la ruta del comando mkswap, que en derivados de RedHat está en /sbin, y la cantidad máxima de memoria que queremos asignar como swap comprimida, en este ejemplo es 1024M. El algoritmo de compresión usado por defecto es lzo pero lz4 es más rápido al comprimir / descomprimir. Los algoritmos de compresión disponibles dependen de las opciones de compilación del kernel usado. Pueden consultarse con el comando cat /sys/block/zram0/comp_algorithm
Al reiniciar el sistema el comando zramctl debe mostrarnos el dispositivo /dev/zram0 con la memoria usada tras comprimir y lo que ocuparía sin comprimir. El comando cat /proc/swaps debe mostrar los dispositivos de swap configurados, el uso de cada uno y su prioridad. Se hará uso de dispositivos de swap por orden de prioridad de mayor a menor
Recordar que si se hace un uso intensivo de swap habrá un mayor uso de CPU al comprimir / descomprimir las páginas de memoria que entran o salen del dispositivo zram
Etiquetas: Administracion, Linux, Optimización, swap, zram
0 comentarios:
Publicar un comentario
Suscribirse a Enviar comentarios [Atom]
<< Inicio