- Outil léger conçu pour permettre un réglage automatique permanent des performances système en exploitant les capacités d’observation de BPF (eBPF)
Problèmes à résoudre
- Trop d’options de réglage : le noyau Linux contient plus de 1 600 paramètres
sysctl ajustables. Trouver les bons réglages pour des environnements variés est complexe et difficile
- Réduction de l’intervention des administrateurs : dans les systèmes cloud modernes, une gestion automatisée est nécessaire plutôt qu’un réglage manuel. La plupart des systèmes reçoivent très peu d’intervention administrateur après leur configuration initiale
- Limites des réglages statiques : comme l’environnement système évolue en permanence, régler avec des valeurs fixes peut être inefficace
Principes de conception clés
- Surcharge minimale : éviter le suivi d’événements à haute fréquence et n’utiliser les fonctions d’observation qu’en cas de nécessité
- Clarté de l’explication des politiques : consigner dans le syslog « ce qui » a été modifié et « pourquoi »
- Priorité à l’administrateur : si un administrateur définit une valeur, la fonction de réglage automatique est désactivée
- Principe sans configuration : réglage automatique sans configuration séparée. Évite autant que possible les magic numbers
- Ajustement dynamique : si l’utilisation mémoire de TCP augmente, réduire la taille des buffers pour rééquilibrer le système
Concepts principaux
- Tuner : chaque tuner traite les événements issus des programmes BPF et gère les paramètres de réglage associés
- Stratégie : un tuner peut avoir plusieurs stratégies, chacune avec une fonction d’évaluation pour sélectionner la plus efficace
- Événement : inclut l’ID du tuner, le scénario, les informations d’espace de noms réseau, etc., et le tuner s’appuie sur ces informations pour effectuer l’action appropriée
Architecture
bpftune fonctionne comme un daemon, charge et gère plusieurs tuners plugins au format .so.
- Chaque tuner possède un ID unique et traite les événements dans BPF comme dans l’espace utilisateur.
- Le composant BPF inclut
bpftune.bpf.h et utilise des variables partagées ainsi que des définitions de maps.
Liste des tuners pris en charge
- TCP connection tuner : réglage automatique de l’algorithme de contrôle de congestion
- neighbour table tuner : extension automatique de la taille de la table des voisins
- route table tuner : extension automatique de la taille de la table de routage
- sysctl tuner : désactivation du tuner si une valeur
sysctl ajustée entre en conflit avec une configuration manuelle
- TCP buffer tuner : ajustement automatique de la taille des buffers TCP
- net buffer tuner : ajustement automatique des réglages liés au réseau cœur
- netns tuner : détection de l’ajout et de la suppression d’espaces de noms réseau
2 commentaires
Avis Hacker News
bpftunea été conçu comme un outil ne nécessitant aucune configurationCachyOSCachyOS Hello->Apps/Tweaks