Table des Matières

  1. Présentation de CachyOS

  2. Post-installation et maintenance

  3. Utilisation de sched-ext pour les Schedulers sur Linux

Présentation de CachyOS

CachyOS est une distribution Linux cutting edge (avant-gardiste) basée sur Arch Linux, conçue pour offrir des performances maximales et tester les nouveautés de Linux en avant-première.

[!WARNING] Même si CachyOS gère l’installation et la configuration du système, cela reste une base Arch Linux “cutting edge”, c’est-à-dire avant-gardiste. En plus de la base Arch Linux, CachyOS inclut des paquets expérimentaux et bêta pour découvrir des fonctionnalités avant tout le monde. Je la recommande donc plutôt à des utilisateurs familiers de Linux, du terminal, et capables de se débrouiller un minimum seuls. Il est également conseillé de ne pas être réfractaire à l’anglais pour lire leur wiki et de rejoindre leur Discord. C’est une distribution communautaire par excellence, et pour en profiter pleinement, il faut lire, comprendre, et participer aux discussions de la communauté. Peter et Vlad, les développeurs principaux, sont très présents, compétents et sympathiques.

Pour contrebalancer ce warning, je tiens à dire que CachyOS est la meilleure distribution de sa catégorie, vu qu’elle est la seule. Il n’y a pas longtemps, j’ai demandé à Peter ce qu’il pensait d’un patch d’Intel pour les performances inclus dans le noyau 6.12 prévu dans plusieurs mois au moment de la question. Il m’a répondu qu’il avait déjà intégré le patch depuis des semaines sur le noyau de CachyOS. Entre les patches en avance, la compilation des paquets optimisée, etc., aucune distribution ne propose autant d’optimisations que CachyOS et n’est aussi avant-gardiste.

Je vous conseille grandement cette vidéo tournée avec Antiz, DevOps et mainteneur de l’équipe officielle d’Arch Linux. Bien qu’étant une base Arch, CachyOS abandonne le côté DIY (Do It Yourself) en prenant en charge la configuration initiale du système et son évolution à votre place.

Principaux avantages de CachyOS :

  • Performance : Basée sur Arch Linux, CachyOS utilise le noyau linux-cachyos optimisé avec le scheduler CPU BORE (Burst-Oriented Response Enhancer) pour de bonnes performances et une latence basse.
  • Paquets optimisés : Les paquets sont compilés avec les jeux d’instructions x86-64-v3, x86-64-v4 et Zen4, ainsi qu’avec LTO pour améliorer les performances. Les paquets principaux bénéficient également d’optimisations PGO ou BOLT.
  • Plein d’autres optimisations : Profile-sync-daemon, systemd-oomd, bpftune, Ananicy-cpp-rules
  • Choix de l’environnement de bureau : Vous pouvez choisir parmi une variété d’environnements de bureau populaires tels que KDE, GNOME, XFCE, i3WM, Wayfire, LXQT, OpenBox, Cinnamon, UKUI, LXDE, Mate, Budgie, Qtile, Hyprland, et Sway lors du processus d’installation.
  • Installation personnalisable : CachyOS propose deux options d’installation : une version avec interface graphique basée sur Calamares, et une option en ligne de commande pour ceux qui préfèrent une installation sans interface graphique.
  • Navigateur par défaut : Cachy-Browser, basé sur Firefox, inclut des fonctionnalités de sécurité supplémentaires et des performances optimisées, intégrant des patchs du navigateur LibreWolf.

Post-installation et maintenance

cachyoshello1

cachyoshello2

  • Faire un tour sur leur wiki : Wiki CachyOS Particulièrement les pages Gaming et General system Tweaks Certains tweaks de ce wiki sont très importants comme la partie 6. Disabling Split Lock Mitigate de general_system_tweaks, indispensable pour jouer dans de bonnes conditions avec un CPU Intel à partir de la génération 12 et plus. Je traite le problème ici en français.
  • Installer le méta-paquet gaming : sudo pacman -S cachyos-gaming-meta ou utiliser CachyOS Hello *5 et prendre les choix par défaut.
  • Penser à activer le Bluetooth pour ceux qui en ont besoin : Il y a une case à cocher dans leur outil “CachyOS Hello” *1, sinon on peut le faire via le terminal avec systemctl enable --now bluetooth.
  • Comme vous pouvez le voir, CachyOS Hello *2 *3 *4 fournit tout ce qu’il faut pour mettre à jour et nettoyer son système.

Autres tweaks de CachyOS Hello (personnellement, je ne conseille que AppArmor et Ananicy-cpp-rules) :

  • Profile-sync-daemon est conçu pour gérer les profils de navigateur dans tmpfs et les synchroniser périodiquement sur le disque physique (HDD/SSD). Cela est réalisé grâce à l’utilisation de rsync pour maintenir la synchronisation entre une copie tmpfs et une sauvegarde sur support des profils de navigateur. De plus, psd dispose de plusieurs fonctionnalités de récupération après crash.

  • AppArmor est un système de sécurité Linux qui limite les capacités des programmes en utilisant des profils de sécurité définissant les ressources auxquelles chaque programme peut accéder.

  • systemd-oomd est un service qui surveille la mémoire de l’ordinateur pour éviter les pannes dues au manque de mémoire. Il prend des mesures correctives en terminant certains programmes avant que le système ne soit à court de mémoire.

  • bpftune est un outil qui optimise les performances du système en ajustant dynamiquement les paramètres du noyau Linux. Il utilise des programmes eBPF pour surveiller et ajuster les ressources en fonction des besoins.

  • Ananicy-cpp-rules CachyOS est une collection de règles pour Ananicy-cpp. Ananicy-cpp est un démon qui ajuste automatiquement les niveaux de priorité (nice) des processus, tandis qu’Ananicy-cpp-rules est une liste de règles utilisées pour attribuer des valeurs de priorité spécifiques à certains processus. En français : quand vous lancez une application qui a besoin de puissance, Anan

icy-cpp la met en priorité CPU élevée.

Astuce

  • Pour booster vos performances au maximum, vous pouvez ajouter l’option de lancement game-performance %command% à vos jeux Steam. Cette option de lancement est spécifique à CachyOS et remplace le gamemode, donc ne surtout pas utiliser gamemode avec cette option.

 steamoptions

  • Si vous utilisez steam-native, qui utilise les bibliothèques système et non steam-runtime (le vrai Steam avec les bibliothèques choisies par Valve), pensez bien à utiliser le proton de CachyOS qui est optimisé pour.

Proton-CachyOS est basé sur proton-experimental et applique un ensemble de correctifs supplémentaires :

  • Correctifs Wine-Staging
  • Wine FullScreen FSR
  • Support de Reflex pour Wine et DXVK
  • Wineserver est compilé avec LTO

De plus, Proton-CachyOS est compilé avec les bibliothèques système natives et les instructions CPU du compilateur, ce qui peut encore améliorer les performances.

 steamnative

Steam Native est potentiellement plus performant par moment mais aussi potentiellement moins stable.

Utilisation de sched-ext pour les Schedulers sur Linux

Le projet sched-ext est une fonctionnalité du noyau Linux qui permet de mettre en œuvre des planificateurs de threads (schedulers) dans BPF (Berkeley Packet Filter) et de les charger dynamiquement. Cela signifie que les utilisateurs peuvent changer de scheduler depuis l’espace utilisateur sans avoir besoin de recompiler le noyau pour un scheduler différent. Cette fonctionnalité devrait être officiellement intégrée au noyau Linux à partir de la version 6.12.

Un scheduler (ou ordonnanceur en français) est une composante essentielle du système d’exploitation qui décide de l’ordre dans lequel les programmes et les processus utilisent le processeur (CPU). En d’autres termes, il organise et gère l’exécution des tâches pour que votre ordinateur fonctionne de manière fluide et efficace, en distribuant les ressources du CPU entre les différentes applications et services qui en ont besoin.

Sur Linux, il existe différents types de schedulers, chacun avec ses propres méthodes pour gérer les tâches. Certains sont optimisés pour la réactivité, d’autres pour les performances maximales, et certains pour une meilleure autonomie de la batterie, etc. En choisissant le bon scheduler, vous pouvez améliorer les performances globales de votre système en fonction de vos besoins spécifiques, comme le gaming ou le montage vidéo.

Le scheduler par défaut de CachyOS est déjà très bon, donc il ne faut pas s’étonner d’obtenir de moins bons résultats en testant les autres. De plus, certains sont orientés vers la latence, ce qui fait que les benchs en performance pure peuvent être moins bons. Un scheduler qui priorise la latence alloue plus fréquemment du temps CPU aux tâches pour réduire le temps d’attente perçu, ce qui nécessite plus de changements de contexte (context switches). Ces changements impliquent des sauvegardes et restaurations fréquentes de l’état des tâches, augmentant ainsi l’overhead. Cet overhead peut réduire l’efficacité globale du CPU, sacrifiant la performance brute au profit de la réactivité, surtout dans des scénarios où la priorité est donnée à l’exécution rapide de tâches lourdes plutôt qu’à la réactivité. Donc un mauvais résultat en FPS moyen ne signifie pas que le scheduler ne fait pas ce qu’on attend de lui.

Démarrage et utilisation des Schedulers scx

Pour utiliser les schedulers avec sched-ext sur CachyOS, utilisez leur outil graphique CachyOS Kernel Manager :

cachyoskernelmanager

schedext

Introduction aux principaux Schedulers

Voici une brève introduction aux principaux schedulers disponibles avec sched-ext :

  • scx_rusty : Choix équilibré, adapté à une large gamme de charges de travail, y compris le gaming.
  • scx_lavd : Latency-criticality Aware Virtual Deadline, axé sur les jeux et principalement sur les appareils portables comme le Steam Deck. Ce scheduler n’est pas encore Topology Aware (par exemple, lorsque le CPU a deux CCX, comme sur un 7950X).
  • scx_rustland : Scheduler qui effectue sa planification dans l’espace utilisateur. Peut gérer des charges de travail lourdes, mais avec un certain overhead en raison de son fonctionnement dans l’espace utilisateur.
  • scx_bpfland : Basé sur rustland, mais sans la partie espace utilisateur, ce qui élimine l’overhead. Convient pour tout, y compris les charges de travail intensives, le gaming ou une utilisation quotidienne comme la navigation ou la consommation multimédia. Dans les jeux, il offre une stabilité des FPS substantielle, avec des temps de trame très stables et constants, au prix d’une performance maximale.

FAQ

  1. Pourquoi le scheduler X fonctionne-t-il moins bien que les autres ?

    De nombreuses variables entrent en jeu lors de la comparaison des schedulers, par exemple : Comment mesurent-ils la charge d’une tâche ?

  2. Pourquoi tout le monde dit-il que le scheduler X est le meilleur pour un cas X, mais il ne fonctionne pas aussi bien pour moi ?

    Comme mentionné précédemment, cela dépend du CPU utilisé et de sa conception, qu’il s’agisse de la disposition des cœurs ou d’autres facteurs similaires.

  3. Lequel dois-je choisir ?

    Cela dépend de vos besoins. Pour des charges de travail mixtes (jeux, programmation, montage vidéo, navigation, etc.), scx_rusty, scx_bpfland, scx_rustland, scx_lavd peuvent convenir.

    • Stabilité des FPS : scx_bpfland, scx_lavd, en fonction du jeu.
    • Performance maximale : scx_rusty, scx_lavd.
    • Réactivité quel que soit la charge de travail : scx_rusty, scx_bpfland.
    • Autonomie de la batterie : scx_lavd ou scx_rustland.

Chaque scheduler peut être ajusté avec des options spécifiques, dans un terminal avec la commande scx_nomduscheduler --help on peut voir les différentes options et les ajouter dans l’outil sur la ligne “Set sched-ext scheduler flags”.

schedexthelp


Pour plus d’informations, vous pouvez consulter les dépôts GitHub suivants :


Dernier import depuis CachyOS le 11/10/2024 par Darkone Linux