Mieux gérer la RAM et les TMPFS

La mémoire RAM peut s’utiliser pour plusieurs choses, autant les maîtriser….

Environnement

PC sous Linux Debian.

J’ai choisi d’affecter 5% de ma RAM mais c’est à optimiser en fonction de l’utilisation.

N.B les tmpfs en question ne sont pas déclarés dans /etc/fstab

Mettre /tmp en TMPFS

C’est le service tmp.mount qui s’en charge

Modifier le taille de RAM alloué à /tmp

Modifier le fichier /etc/systemd/system/tmp.mount pour affecter 5%

Options=mode=1777,size=5%,strictatime,nosuid,nodev

Activer le service

systemctl enable tmp.mount 

Rendre permanente la modification

Pour éviter de perdre la modification si le service est relivré, il faut créer un fichier de configuration personnalisé.

Créer le dossier de personnalisation


root@debian:/etc/systemd/system# mkdir -pv tmp.mount.d

Créer le fichier de personnalisation

 
cd /etc/systemd/system/tmp.mount.d

cat > tmp.mount.conf << EOF
[Mount]
Options=mode=1777,size=5%,strictatime,nosuid,nodev
EOF

systemctl daemon-reload

Vérification après redémarrage

systemctl status tmp.mount
● tmp.mount - Temporary Directory (/tmp)
Loaded: loaded (/etc/systemd/system/tmp.mount; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/tmp.mount.d
└─tmp.mount.conf
Active: active (mounted) since Fri 2019-03-22 10:17:46 CET; 2min 22s ago
Where: /tmp
What: tmpfs
Docs: man:hier(7)
https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
Tasks: 0 (limit: 4289)
Memory: 108.0K
CGroup: /system.slice/tmp.mount
mars 22 10:17:46 debian systemd[1]: Mounting Temporary Directory (/tmp)…
mars 22 10:17:46 debian systemd[1]: Mounted Temporary Directory (/tmp).

Plus d’infos

https://linux.die.net/man/8/mount

https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems/

A l’ancienne via fstab

On gère directement dans /etc/fstab

cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=78ec612e-d1d9-4c88-88ec-17d9b0815a8f /               ext4    errors=remount-ro 0       1
# /home was on /dev/sda6 during installation
UUID=0231cd69-6248-497c-a18c-4d5c92666f35 /home           ext4    defaults        0       2
# swap was on /dev/sda5 during installation
UUID=60e41088-15f8-4d62-93ba-4bfcbf36c48f none            swap    sw              0       0
# tmp en ram  besoin de beaucoup pour calibre 20-> 30
tmpfs           /tmp            tmpfs   defaults,noatime,nosuid,nodev,noexec,mode=1777,size=30%    0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
systemctl status tmp.mount
● tmp.mount - /tmp
     Loaded: loaded (/etc/fstab; generated)
     Active: active (mounted) since Wed 2021-11-10 09:07:48 CET; 1h 12min ago
      Where: /tmp
       What: tmpfs
       Docs: man:fstab(5)
             man:systemd-fstab-generator(8)
      Tasks: 0 (limit: 4277)
     Memory: 4.0K
        CPU: 3ms
     CGroup: /system.slice/tmp.mount

nov. 10 09:07:48 debian systemd[1]: tmp.mount: Directory /tmp to mount over is not empty, mounting anyway.
nov. 10 09:07:48 debian systemd[1]: Mounting /tmp...
nov. 10 09:07:48 debian systemd[1]: Mounted /tmp.
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,1M  175M   4% /run
/dev/sda1        ext4        19G     16G  1,9G  90% /
tmpfs            tmpfs      1,8G     55M  1,8G   3% /dev/shm
tmpfs            tmpfs      5,0M    4,0K  5,0M   1% /run/lock
tmpfs            tmpfs      1,1G    119M  965M  11% /tmp
/dev/sda6        ext4       268G    246G  8,2G  97% /home
tmpfs            tmpfs      361M     52K  361M   1% /run/user/1001

Modifier la taille de /run

Modifier le fichier /etc/initramfs-tools/initramfs.conf pour affecter 5 %

RUNSIZE=5%

Reconstruire l’initramfs

update-initramfs -u -k all

Vérification après redémarrage

df -hT
Sys. de fichiers Type Taille Utilisé Dispo Uti% Monté sur
udev devtmpfs 1,8G 0 1,8G 0% /dev
tmpfs tmpfs 185M 6,1M 179M 4% /run
/dev/sda1 ext4 19G 15G 3,5G 81% /
tmpfs tmpfs 1,9G 81M 1,8G 5% /dev/shm
tmpfs tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs tmpfs 1,9G 0 1,9G 0% /sys/fs/cgroup
tmpfs tmpfs 185M 8,0K 185M 1% /tmp
/dev/sda6 ext4 268G 202G 52G 80% /home
tmpfs tmpfs 370M 28K 369M 1% /run/user/1001
free -mht
total used free shared buff/cache available
Mem: 3,6Gi 1,9Gi 364Mi 87Mi 1,3Gi 1,4Gi
Swap: 7,5Gi 107Mi 7,4Gi
Total: 11Gi 2,0Gi 7,7Gi

5% de 3,6Gi font bien 185M

Attention à ne pas trop réduire /tmp, il est utilisé lors de l’installation de paquets.

Exemple pendant l’installation d’un noyau:

tmpfs            tmpfs      185M    149M   37M  81% /tmp

Par Bidouille De Bian

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