Réduire la consommation de mémoire vive sous systemd

Posté le 12 janvier 2020 · 4 minutes de lecture

Depuis environ deux ans, Fedora est ma distribution GNU/Linux de référence. La plus complète, la plus facile à prendre en main mais aussi la plus efficace pour moi. Mon ordinateur étant un outil de travail avant d’être un moyen de détente, je cherche l’efficacité. Cependant, GNOME est quand même un éléphant dans le monde des environnements GNU/Linux. Les autres sont tous plus légers, que ce soit KDE, Deeping et je ne parle même pas des environnements légers comme XFCE ou LXQT.

Avec une Fedora 31, des extensions et sans configuration, la consommation au démarrage est à environ 1,4Go. C’est énorme… mais toujours plus faible que Windows.

Kirby mangeant de la RAM

Bref, et si nous optimisions tout ça ? Tout ce qui suit fonctionne bien sûr avec n’importe quelle distribution GNU/Linux tant que celle-ci utilise systemd.

La première commande à connaître c’est # systemd-analyze blame. Elle vous permettra de connaître le temps de chargement et la totalité des services qui se lancent au démarrage de votre machine. Fedora étant une distribution pour tout le monde, il y a des services qui ne nous intéressent absolument pas. Par exemple, si vous avez un ordinateur portable, pas besoin de la gestion du RAID. Si vous n’avez d’imprimante pas (ou si vous n’en n’avez pas besoin), pas besoin de Cups.

Quelques services qui peuvent être désactivés

Voici une petite liste de service qui peuvent être désactivés avec une petite explication à côté. À savoir que cette liste n’est pas exhaustive, consultez votre moteur de recherche préféré pour connaître les détails des services activés au démarrage.

  • cups.service: gestion de(s) imprimante(s); si vous n’en n’avez pas ou pas besoin, vous pouvez le désactiver.
  • abrtd*: services de détection des erreurs sur le système. Quand GNOME plante par exemple, c’est ce qui vous proposera d’envoyer un rapport d’erreur. Il existe plusieurs services en rapport:
    • abrt-oops.service
    • abrt-journal-core.service
    • abrt-vmcore.service
    • abrt-xorg.service
  • libvirtd.service: c’est le démon du logiciel permettant la gestion de la virtualisation de GNOME.
  • dmraid-activation.service: gestion d’un système RAID
  • lvm2-monitor.service: gestion des partitions LVM. Si comme moi vous utilisez des partitions classiques, vous pouvez le désactiver sans soucis.
  • ModemManager.service: si vous avez le périphérique pour intégrer une carte SIM sur votre ordinateur (3g, 4g), il peut être utile. Sinon non.

La commande à utiliser pour désactiver un service est la suivante, avec le nom du service à la fin.

1
# systemctl disable

Bien sûr, tout cela n’est qu’un exemple. Il existe des services qui sont déconseillés de supprimer comme le pare-feu. Après, si vous savez ce que vous faites, pourquoi pas.

Il reste un dernier petit point, celui qui consomme le plus de mémoire vive au démarrage…

PackageKit

Toi qui traîne sur mon blog, tu es certainement un power-user. Donc tu n’utilises pas les outils graphiques. C’est pour les faibles. Pour madame tout le monde, il y a un truc super cool qui existe: les interfaces graphiques.

À une époque, nous étions obligé·e·s d’utiliser le sacro-saint Terminal pour mettre à jour notre système, ce n’est désormais plus le cas (et ce depuis quelques versions de Fedora).

Si vous êtes une true sister, alors vous pouvez désactiver les services de PackageKit:

  • packagekit.service
  • packagekit-offline-update.service

Si, comme moi, vous êtes une sorcière, on peut même supprimer tout ça. 🧙‍♀️ On s’en fiche après tout, nos baguettes c’est notre clavier:

1
# dnf autoremove PackageKit gnome-software

Les majuscules sont importantes, elles ne sont pas là pour faire les mascus. On sait qu’ils sont inutiles, un peu comme les interfaces graphiques.

Et voilà… au démarrage, on se retrouve avec une consommation d’environ 700Mo. C’est encore beaucoup, mais c’est déjà ça.

Capture d'écran de Htop au démarrage de Fedora