Hoje, como o módulo zram já vem ativo por padrão no Slackware, aproveito para informar que a antiga dica ATIVANDO ZRAM NO SLACKWAREdo colaborador Leandro Nkz é em parte obsoleta (em parte porque ainda funciona, mas desnecessária conforme o módulo já vem ativo por padrão).
E aproveitando, demonstrarei aqui um novo método para utilização da zram, desta vez calculando o quanto de memória será alocada a partir do nº de cores de seu processador e da quantidade total de memória física.

Como dito na introdução o script abaixo calcula o quanto de memória deverá ser adicionada tomando como base o n° de cores do processador (aqui: 6 cores) e a quantidade de memória física (aqui 8GB).
Este script baseou-se no script utilizado num antigo artigo que fiz para o VOL:
ZRAM (Compressed RAM) no Debian
Vamos então ao que interessa…
Slackware.
No Slackware bastará que você adicione o script abaixo em /etc/rc.d/rc.zram, logo:
# nano /etc/rc.d/rc.zramCole o conteúdo abaixo, salve e saia com Ctrl+o e Ctrl+x:
#!/bin/sh ### BEGIN INIT INFO # Provides: zram # Required-Start: # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Increased Performance In Linux With zRam (Virtual Swap Compressed in RAM) # Description: Adapted from systemd scripts at https://github.com/mystilleef/FedoraZram # Adapted for Slackware and Gentoo OpenRC by @edps <https://edpsblog.wordpress.com> ### END INIT INFO start() { # get the number of CPUs num_cpus=$(grep -c processor /proc/cpuinfo) # if something goes wrong, assume we have 1 [ "$num_cpus" != 0 ] || num_cpus=1 # set decremented number of CPUs decr_num_cpus=$((num_cpus - 1)) # get the amount of memory in the machine mem_total_kb=$(grep MemTotal /proc/meminfo | grep -E --only-matching '[[:digit:]]+') mem_total=$((mem_total_kb * 1024)) # load dependency modules modprobe zram num_devices=$num_cpus # initialize the devices for i in $(seq 0 $decr_num_cpus); do echo $((mem_total / num_cpus)) > /sys/block/zram$i/disksize done # Creating swap filesystems for i in $(seq 0 $decr_num_cpus); do mkswap /dev/zram$i done # Switch the swaps on for i in $(seq 0 $decr_num_cpus); do swapon -p 80 /dev/zram$i done } stop() { # get the number of CPUs num_cpus=$(grep -c processor /proc/cpuinfo) # set decremented number of CPUs decr_num_cpus=$((num_cpus - 1)) # Switching off swap for i in $(seq 0 $decr_num_cpus); do if [ "$(grep /dev/zram$i /proc/swaps)" != "" ]; then swapoff /dev/zram$i sleep 1 fi done sleep 1 rmmod zram } case "$1" in start) start swapon -p 80 /dev/zram$i ;; stop) stop ;; restart) stop sleep 3 start ;; *) echo "Usage: $0 {start|stop|restart}" RETVAL=1 esac exit $RETVALApós salvar o script, atribua sua permissão de execução:
# chmod a+x /etc/rc.d/rc.zramE para concluir, adicione o script à inicialização do sistema pondo-o uma chamada de execução no script /etc/rc.d/rc.local:
# Start rc.zram. if [ -x /etc/rc.d/rc.zram ] then /etc/rc.d/rc.zram start fiSe desejar testar sem reiniciar, basta executar:
# /etc/rc.d/rc.local restartA seguir vemos a ativação do zram por meio de um alias para o comando acima e detalhes do módulo com o modinfo:
Vemos na imagem abaixo a quantidade de memória disponível quando o script está sendo executado e quando parado:
A seguir vemos a listagem dos dispositivos ativos e do meu /etc/fstab onde atribuo baixa prioridade a swap física /dev/sdc5:
Caso também queira definir baixa prioridade à sua swap física, tome como exemplo a entrada abaixo e edite o seu arquivo /etc/fstab:
UUID=e6ed6536-3156-48f9-8e25-640aa272234f swap swap nofail,pri=10 0 0
Gentoo.
No Gentoo tradicional (systemd-free), você utilizará o mesmo script acima, porém, em vez de salvá-lo em /etc/rc.d/, o fará em /etc/init.d, como em:
# nano /etc/init.d/zramCole o mesmo conteúdo demonstrado no passo acima, salve e saia com Ctrl+o e Ctrl+x:
Após salvá-lo, atribua a permissão de execução:
# chmod a+x /etc/init.d/zramE para concluir, adicione o script à inicialização do sistema:
# rc-update add zram defaultSe desejar testar sem reiniciar, basta executar:
# /etc/init.d/zram startNas imagens abaixo vemos a cópia do script da instalação do Slackware ( /etc/rc.d/rc.zram ) para a do Gentoo ( /etc/init.d/zram ), sua adição à inicialização deste sistema e sua execução:
E tendo dito… intÉ!
Salve mano.
Valeu por esse esquema de zram que compartilhou.
Estou testando esse esquema de zram aqui e deu um gás a mais no sitema quando é necessário o uso da swap.
Por via das dúvidas também instalei https://slackbuilds.org/repository/14.2/system/lz4/
Também estou testando algumas singelas modificações na config do kernel, pois estava analizando algumas configs do liquorix e notei que em:
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
Aqui antes tava usando setado em 1000, agora estou usando em 250.
E também notei que a config do liquorix usa lz4 para criar a bzimage.
E aqui no Slackware foi necessário instalar o https://slackbuilds.org/repository/14.2/system/lz4/ para gerar o bzImage quando tiver setado para lz4.
Descobri isso depois de 1 hora e 28 minutos de compilação usando essa config
https://github.com/damentz/liquorix-package/blob/master/linux-liquorix/debian/config/kernelarch-x86/config-arch-64
O patch patch (lqx) https://github.com/zen-kernel/zen-kernel/releases , mas aparentemente é a mesma coisa do zen , só muda realmente algo no arquivo config custom que mencionei anteriormente.
Também notei que a compilação e setada com a flag -O3
CONFIG_CC_OPTIMIZE_HARDER=y
https://imgur.com/a/eRRcYC5
E talvez seja necessário gerar algum initrd.gz.
# /usr/share/mkinitrd/mkinitrd_command_generator.sh -k 5.3.11-zen1
( por exemplo aqui foi gerado assim )
mkinitrd -c -k 5.3.11-zen1 -f xfs -r /dev/sda5 -m xfs -u -o /boot/initrd.gz
vai gerar o comando para criar o initrd.gz.
aqui adicionei o microcode da intel dessa forma para ficar embutido no initrd.gz
# mkinitrd -c -k 5.3.11-zen1 -f xfs -r /dev/sda5 -m xfs -u -o /boot/initrd.gz -P /boot/intel-ucode.cpio
OBS:
Depois que apliquei essas modificações que citei minha máquina deu uma melhorada.
Também apliquei o noatime no fstab.
Obrigado pela atenção, salve!!!
CurtirCurtir
Fala amigo,
atualmente estou usando o -CK onde não me ative a essa opção, aqui está:
CONFIG_HZ=100
Quanto a compactação eu já sabia que o -CK sugere o uso do lz4, mas não modifiquei, o meu está:
CONFIG_KERNEL_LZMA=y
E não uso initrd, all-built-in (mas usando make localmodconfig)
For your eyes only! kkk :
$ wget -nv https://github.com/ckolivas/linux/archive/5.5-ck1.tar.gz
$ sudo tar xf 5.5-ck1.tar.gz -C /usr/src/
$ cd /usr/src
$ su
# rm -rf linux
# ln -s linux-5.5-ck1 linux
# cd linux
# make localmodconfig
# make -j $(getconf _NPROCESSORS_ONLN) bzImage modules
# make modules_install
# cp -v System.map /boot/System.map-5.5.0-ck1
# cp -v .config /boot/config-5.5.0-ck1
# cp -v arch/x86/boot/bzImage /boot/vmlinuz-5.5.0-ck1
# cd /boot
# rm -fv config System.map vmlinuz
# ln -s vmlinuz-5.5.0-ck1 vmlinuz
# ln -s System.map-5.5.0-ck1 System.map
# ln -s config-5.5.0-ck1 config
# grub-mkconfig -o /boot/grub/grub.cfg
CurtirCurtir