Pousser encore un peu plus le swap dans la mémoire RAM

On évite de swapper mais si on swap on reste en RAM, c’est possible…..


Environnement

PC sous Linux Debian 10 (Buster)

Installation

A l’installation le swap ( partition d’échange) déclaré sur le disque à une taille = 2* RAM. C’est une convention qui date des débuts de Linux.

fdisk -l

Périphérique Amorçage    Début       Fin  Secteurs Taille Id Type
/dev/sda1    *            2048  40011775  40009728  19,1G 83 Linux
/dev/sda2             40011776 625142447 585130672   279G  5 Étendue
/dev/sda5             40013824  55717887  15704064   7,5G 82 partition d'échange Linux / Solaris
/dev/sda6             55719936 625141759 569421824 271,5G 83 Linux

Installer le paquet zram-tools: https://packages.debian.org/unstable/zram-tools

cat /etc/default/zramswap
# Compression algorithm selection
# speed: lz4 > zstd > lzo
# compression: zstd > lzo > lz4
# This is not inclusive of all that is available in latest kernels
# See /sys/block/zram0/comp_algorithm (when zram module is loaded) to see
# what is currently set and available for your kernel[1]
# [1]  https://github.com/torvalds/linux/blob/master/Documentation/blockdev/zram.txt#L86
#ALGO=lz4

# Specifies the amount of RAM that should be used for zram
# based on a percentage the total amount of available memory
# This takes precedence and overrides SIZE below
#PERCENT=50

# Specifies a static amount of RAM that should be used for
# the ZRAM devices, this is in MiB
#SIZE=256

# Specifies the priority for the swap devices, see swapon(2)
# for more details. Higher number = higher priority
# This should probably be higher than hdd/ssd swaps.
#PRIORITY=100
systemctl status zramswap.service
● zramswap.service - Linux zramswap setup
     Loaded: loaded (/lib/systemd/system/zramswap.service; enabled; vendor preset: enabled)
     Active: active (exited) since Tue 2021-10-05 17:11:41 CEST; 18min ago
       Docs: man:zramswap(8)
   Main PID: 3264 (code=exited, status=0/SUCCESS)
        CPU: 56ms

oct. 05 17:11:39 debian systemd[1]: Starting Linux zramswap setup...
oct. 05 17:11:40 debian root[3775]: Starting Zram
oct. 05 17:11:40 debian zramswap[3775]: <13>Oct  5 17:11:40 root: Starting Zram
oct. 05 17:11:41 debian zramswap[4282]: Configure l'espace d'échange (swap) en version 1, taille = 256 MiB (268431360 octets)
oct. 05 17:11:41 debian zramswap[4282]: pas d'étiquette, UUID=6dea7ede-323e-412e-bf7e-25204fd268fd
oct. 05 17:11:41 debian systemd[1]: Finished Linux zramswap setup.

Vérification

root@debian:~#  free -mht
               total       utilisé      libre     partagé tamp/cache   disponible
Mem:           3,5Gi       861Mi       1,1Gi        86Mi       1,6Gi       2,4Gi
Partition d'échange:      7,7Gi          0B       7,7Gi
Total:          11Gi       861Mi       8,8Gi
root@debian:~# zramctl
NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram0 lz4           256M   4K   63B    4K       2 [SWAP]

Ici le PC vient de démarrer et n’est pas surchargé donc il n’y a encore rien en swap.

root@debian:~#  swapon -s
Nom fichier				Type		Taille		Utilisé		Priorité
/dev/sda5                               partition	7852028		0		-2
/dev/zram0                              partition	262140		0		100
root@debian:~#  df -hT
Sys. de fichiers Type     Taille Utilisé Dispo Uti% Monté sur
udev             devtmpfs   1,8G       0  1,8G   0% /dev
tmpfs            tmpfs      181M    6,0M  175M   4% /run
/dev/sda1        ext4        19G     16G  2,0G  90% /
tmpfs            tmpfs      1,8G     34M  1,8G   2% /dev/shm
tmpfs            tmpfs      5,0M    4,0K  5,0M   1% /run/lock
tmpfs            tmpfs      1,1G     35M  1,1G   4% /tmp
/dev/sda6        ext4       268G    241G   14G  95% /home
tmpfs            tmpfs      361M     72K  361M   1% /run/user/1001
ls -alrt /dev/zram*
brw-rw---- 1 root disk 254, 0  5 oct.  17:11 /dev/zram0

Et oui, si on a besoin du swap, on utilisera la RAM en premier.

Par Bidouille De Bian

Bidouilleur sur Linux Debian 10 (Buster). Débutant dans le blog sur Wordpress.