Bonjour,
Quelques pistes qui fonctionnent sur plusieurs Debian Stretch… pour beaucoup SSDisés
Objectif limiter les accès disques en privilégiant la RAM, récupérer un système neutre à chaque démarrage.
Coté SystemD
Délpacer la journalisation en RAM
/etc/systemd/journald.conf.
sed -i ‘s%.Compress=.%Compress=yes%’ /etc/systemd/journald.conf
sed -i ‘s%.Storage=.%Storage=volatile%’ /etc/systemd/journald.conf
Réactiver les TMP en RAM ce n’est plus le cas sous Debian Maintenant (voir avec un mount le /tmp)
Enable & start Service tmp.mount
mv -f /usr/share/systemd/tmp.mount /etc/systemd/system
systemctl enable tmp.mount
Activer le service systemd-tmpfiles-setup pour conserver l’intégrité du démarrage de l’OS pour tout ce qui aura été déplacer en RAM (Exemple le /var/log qu’il soit Rsyslog ou autres…).
Ce service qui démarre très tôt recrée à la volée l’arborescence attendu par le système avant même que les premiers services ne l’utilisent (Exemple le /var/log)
Enable & start Service systemd-tmpfiles-setup.service.
systemctl enable systemd-tmpfiles-setup.service
systemctl start systemd-tmpfiles-setup.service
Configurer le systemd-tmpfiles-setup (Par l’observation du fonctionnement du système, ça s’invente pas). Exemple regarder l’intégrité du /var/log actuel avant de le déplacer
Exemple pour un fonctionnement usuel sous stretch/gnome
APT
echo “D /var/log/apt 1777 root root” > /etc/tmpfiles.d/tmp.conf
CUPS
echo “D /var/log/cups 1777 root root” >> /etc/tmpfiles.d/tmp.conf
echo “D /var/spool/cups/tmp 1777 root root” >> /etc/tmpfiles.d/tmp.conf
Exim4
echo “D /var/log/exim4 1777 root root” >> /etc/tmpfiles.d/tmp.conf
GDM3
echo “D /var/log/gdm3 1777 root root” >> /etc/tmpfiles.d/tmp.conf
Installer.
echo “D /var/log/installer 1777 root root” >> /etc/tmpfiles.d/tmp.conf
echo “D /var/log/installer/cdebconf 1777 root root” >> /etc/tmpfiles.d/tmp.conf
Samba
echo “D /var/log/samba 1777 root root” >> /etc/tmpfiles.d/tmp.conf
Speech-Dispatcher.
echo “D /var/log/speech-dispatcher 1777 root root” >> /etc/tmpfiles.d/tmp.conf
Unattented-upgrades.
echo “D /var/log/unattented-upgrades 1777 root root” >> /etc/tmpfiles.d/tmp.conf
Fichiers.
echo “F /var/log/daemon.log 1777 root root” >> /etc/tmpfiles.d/tmp.conf
echo “F /var/log/debug 1777 root root” >> /etc/tmpfiles.d/tmp.conf
echo “F /var/log/dpkg.log 1777 root root” >> /etc/tmpfiles.d/tmp.conf
echo “F /var/log/auth.log 1777 root root” >> /etc/tmpfiles.d/tmp.conf
echo “F /var/log/kern.log 1777 root root” >> /etc/tmpfiles.d/tmp.conf
echo “F /var/log/exim4/mainlog 1777 root root” >> /etc/tmpfiles.d/tmp.conf
echo “F /var/log/messages 1777 root root” >> /etc/tmpfiles.d/tmp.conf
echo “F /var/log/popularity-contest 1777 root root” >> /etc/tmpfiles.d/tmp.conf
echo “F /var/log/popularity-contest.new 1777 root root” >> /etc/tmpfiles.d/tmp.conf
echo “F /var/log/syslog 1777 root root” >> /etc/tmpfiles.d/tmp.conf
echo “F /var/log/user.log 1777 root root” >> /etc/tmpfiles.d/tmp.conf
Une fois l’intégrité de ce qui doit être déplacé en RAM est OK pour le démarrage on peut déplacer ce que l’on a besoin en RAM via le fstab
/etc/fstab
Attention le systemd-tmpfiles-setup doit être bien configuré)
exemple
tmpfs /var/log tmpfs rw,nosuid,nodev,noatime,nodiratime,mode=1755 0 0
tmpfs /var/mail tmpfs rw,nosuid,nodev,noatime,nodiratime,mode=1777 0 0
tmpfs /var/spool/cups tmpfs rw,nosuid,nodev,noatime,nodiratime,mode=1777 0 0
tmpfs /var/tmp tmpfs rw,nosuid,nodev,noatime,nodiratime,mode=1777 0 0
Faire sauter le swap dans le FSTAB cela va de soit… Ou alors baisser fortement vm.swappiness
echo “vm.swappiness=1” >> /etc/sysctl.d/90-sysctl.conf
Certaines options de montages pour le / ou /home peuvent limiter de façon importantes les accès disque par exemple pour du BTRFS.
UUID=8f470739-64e4-4b88-b609-375e8632abb8 / btrfs rw,noatime,nodiratime,noacl,nobarrier,commit=70,autodefrag,compress=lzo 0 1
Si Debian sous Buster le zstd est accessible il me semble, bien meilleur que le lzo (ca limite encore la quantité d’information écrite sur disque)
Si tu as besoins de plus de log que la session en cours (analyse sur plusieurs jours) il faut simplment recommenter la déclaration du /var/log et les logs rebasculeront sur disque.
Côté FS du TMPFS il peut être judicieux en fonction des cas de monter la taille du TMPS et/ou de monter le nombres d’inodes si tu stockes dans ta session en cours plusieurs centaines de milliers de fichiers (Ca peut être le cas pour certaines applications de calcul ou autres logiciels. Ils sont un peu bas de base.
Exemple les inodes du TMP, et la taille du /tmp (EN RAM maintenant)
mount -o remount,rw,nosuid,nodev,nr_inodes=501k,size=250M /tmp
pour analyser les deux consommations
df -hi
df -h
Côté sessions utilisateurs ton meilleur allié pour redirigé tout ce que veux en RAM sans passer par la Conf manuel de chaque application sera le programme uhd paquet unburden-home-dir
Activation d’UHD une fois installé
echo “UNBURDEN_HOME=true” > /etc/default/unburden-home-dir
Exemple de redirection en RAM pour quelques applications(Ta seul limitation sera le temps d’analyse comportementales des différentes applications utilisées)
NE PAS REPRENDRE CES CONFIGS UHD mais regarder finement ce que dépose les applications dans la session utilisateur et adapter…
Quelques Exemples
Adobe
echo “m d .adobe adobe” > /etc/unburden-home-dir.list
echo “m d .macromedia macromedia” >> /etc/unburden-home-dir.list
#~ # Firefox
echo “m D mozilla/firefox/CrashReports/events firefox-crash-report-events-%1\n" > /etc/unburden-home-dir.list
echo "m D mozilla/firefox/CrashReports/events firefox-crash-report-events-%1\n” > /etc/unburden-home-dir.list
echo “m d mozilla/firefox/pixs.default/storage/temporary firefox-storage-temporary-%1\n” >> /etc/unburden-home-dir.list
echo “m D mozilla/firefox/pixs.default/crashes/events firefox-crashes-events-%1\n” >> /etc/unburden-home-dir.list
echo “m D mozilla/firefox/pixs.default/datareporting/archived firefox-datareporting-archived-%1\n” >> /etc/unburden-home-dir.list
echo “m D mozilla/firefox/pixs.default/minidumps firefox-minidumps-%1\n” >> /etc/unburden-home-dir.list
echo “m f .mozilla/firefox/pixs.default/lock firefox-lock\n” >> /etc/unburden-home-dir.list
echo “m f .mozilla/firefox/pixs.default/.parentlock firefox-parentlock\n” >> /etc/unburden-home-dir.list
#~ # Firefox Cache
echo “m d .cache/mozilla/firefox/pixs.default/cache2 cache-firefox-cache2-%1\n” >> /etc/unburden-home-dir.list
echo “m d .cache/mozilla/firefox/pixs.default/safebrowsing cache-firefox-safebrowsing-%1\n” >> /etc/unburden-home-dir.list
#~ # Gimp
echo “m d .gimp-2.8/tmp gimp-2.8-tmp\n” >> /etc/unburden-home-dir.list
#~ # Gnome
echo “m d .dbus/session-bus dbus-session-bus\n” >> /etc/unburden-home-dir.list
echo “m d .local/tmp local-tmp\n” >> /etc/unburden-home-dir.list
echo “m d .thumbnails thumbnails\n” >> /etc/unburden-home-dir.list
echo “m f .gksu.lock gksu.lock\n” >> /etc/unburden-home-dir.list
#~ # PlayOnLinux
echo “m d .PlayOnLinux/logs PlayOnLinux-logs\n” >> /etc/unburden-home-dir.list
echo “m d .PlayOnLinux/tmp PlayOnLinux-tmp\n” >> /etc/unburden-home-dir.list
etc etc…
Ces justes des pistes pour aller vers une philisophie ou la RAM est privilégiée et le système le plus neutre possible à chaque démarrage.