Aller au contenu

« Systemd-cgtop » : différence entre les versions

De Marmits Wiki
 
(5 versions intermédiaires par le même utilisateur non affichées)
Ligne 33 : Ligne 33 :
=== '''Lancement de base''' ===
=== '''Lancement de base''' ===


<syntaxhighlight lang="bash">sudo systemd-cgtop</syntaxhighlight>
<syntaxhighlight lang="bash" copy>sudo systemd-cgtop</syntaxhighlight>
'''Sortie typique''' :
'''Sortie typique''' :


Ligne 77 : Ligne 77 :


Exemple :
Exemple :
 
<syntaxhighlight lang="bash" copy>
# Trie par CPU, rafraîchit chaque seconde
systemd-cgtop -p -d 1
</syntaxhighlight>
<syntaxhighlight lang="bash" copy>sudo systemd-cgtop -d 1 -p -n 5  # Top 5 des cgroups par CPU, rafraîchi chaque seconde</syntaxhighlight>
<syntaxhighlight lang="bash" copy>sudo systemd-cgtop -d 1 -p -n 5  # Top 5 des cgroups par CPU, rafraîchi chaque seconde</syntaxhighlight>


Ligne 102 : Ligne 105 :
Pour voir la '''hiérarchie des cgroups''' :
Pour voir la '''hiérarchie des cgroups''' :


<syntaxhighlight lang="bash">sudo systemd-cgls</syntaxhighlight>
<syntaxhighlight lang="bash" copy>sudo systemd-cgls</syntaxhighlight>
''(Utile pour comprendre l’organisation des processus.)''
''(Utile pour comprendre l’organisation des processus.)''


Ligne 111 : Ligne 114 :
<ul>
<ul>
<li><p>Vérifiez qu’il est actif :</p>
<li><p>Vérifiez qu’il est actif :</p>
<syntaxhighlight lang="bash">systemctl status MON_SERVICE</syntaxhighlight></li>
<syntaxhighlight lang="bash" copy>systemctl status MON_SERVICE</syntaxhighlight></li>
<li><p>Cherchez son nom exact :</p>
<li><p>Cherchez son nom exact :</p>
<syntaxhighlight lang="bash">systemd-cgls | grep -i MON_SERVICE</syntaxhighlight></li></ul>
<syntaxhighlight lang="bash" copy>systemd-cgls | grep -i MON_SERVICE</syntaxhighlight></li></ul>


=== '''Q2 : Comment quitter <code>systemd-cgtop</code> ?''' ===
=== '''Q2 : Comment quitter <code>systemd-cgtop</code> ?''' ===
Ligne 123 : Ligne 126 :
Utilisez :
Utilisez :


<syntaxhighlight lang="bash">top -p $(pgrep -d ',' systemd)  # Surveiller systemd et ses enfants</syntaxhighlight>
<syntaxhighlight lang="bash" copy>top -p $(pgrep -d ',' systemd)  # Surveiller systemd et ses enfants</syntaxhighlight>
<syntaxhighlight lang="bash" copy>top -p $(pgrep -d ',' fail2ban)  # Surveiller fail2ban</syntaxhighlight>


== '''6. Conclusion''' ==
== '''6. Conclusion''' ==

Dernière version du 24 juin 2025 à 21:40

systemd-cgtop : Surveillance des ressources par cgroup sous Linux

1. Introduction

systemd-cgtop est un outil en temps réel permettant de surveiller l’utilisation des ressources (CPU, mémoire, E/S) par les groupes de contrôle (cgroups) sous Linux. Il est particulièrement utile pour analyser l’impact des services gérés par systemd, comme les démons, conteneurs ou applications système.

📌 Comparaison avec d’autres outils :

Outil Description Avantage de systemd-cgtop
top/htop Surveille les processus individuels Montre l'utilisation par service (cgroup)
systemctl status Affiche l'état d'un service Donne des métriques précises (CPU, RAM, E/S)
journalctl Logs des services Complémentaire pour diagnostiquer les surcharges

2. Installation et Lancement

Vérification de la disponibilité

systemd-cgtop est inclus dans systemd (présent par défaut sur la plupart des distributions Linux).

Lancement de base

sudo systemd-cgtop

Sortie typique :

Control Group               Tasks   %CPU   Memory  Input/s Output/s  
/system.slice/nginx.service    5    12.3    45.2M     0B      0B  
/user.slice/user-1000.slice   18     5.1   512.4M     0B      0B  

3. Fonctionnalités Clés

a. Tri interactif

  • p : Trier par utilisation CPU (%).
  • m : Trier par utilisation mémoire (MB/GB).
  • d : Trier par E/S disque.

b. Filtrage

Pour surveiller un service spécifique (ex: fail2ban) :

sudo systemd-cgtop | grep -i fail2ban

c. Options de ligne de commande

Option Description
-n 10 Affiche les 10 premiers cgroups
-d 2 Rafraîchit toutes les 2 secondes
-p Trie par CPU dès le lancement
--order=memory Trie par mémoire

Exemple :

# Trie par CPU, rafraîchit chaque seconde
systemd-cgtop -p -d 1
sudo systemd-cgtop -d 1 -p -n 5  # Top 5 des cgroups par CPU, rafraîchi chaque seconde

4. Cas d’Usage Pratiques

a. Identifier un service gourmand

Si le système est lent :
1. Lancez systemd-cgtop -p.
2. Repérez les cgroups avec une %CPU élevée (>20%).
3. Utilisez journalctl -u SERVICE pour analyser les logs.

b. Surveiller un service spécifique

Exemple avec Nginx :

sudo systemd-cgtop | grep -i nginx

Interprétation :
- %CPU = 5.2% → Faible charge.
- Memory = 120.5M → Utilisation mémoire modérée.

c.Comparaison avec systemd-cgls

Pour voir la hiérarchie des cgroups :

sudo systemd-cgls

(Utile pour comprendre l’organisation des processus.)

5. FAQ

Q1 : Pourquoi ne vois-je pas mon service ?

  • Vérifiez qu’il est actif :

    systemctl status MON_SERVICE
    
  • Cherchez son nom exact :

    systemd-cgls | grep -i MON_SERVICE
    

Q2 : Comment quitter systemd-cgtop ?

Appuyez sur q ou Ctrl+C.

Q3 : Alternative si systemd-cgtop n’est pas disponible ?

Utilisez :

top -p $(pgrep -d ',' systemd)  # Surveiller systemd et ses enfants
top -p $(pgrep -d ',' fail2ban)  # Surveiller fail2ban

6. Conclusion

systemd-cgtop est un outil puissant pour :
Diagnostiquer les goulots d’étranglement (CPU, RAM, E/S).
Surveiller finement les services systemd.
Identifier des fuites mémoire ou surcharges.

📌 À retenir :
- Combinez-le avec journalctl pour une analyse complète.
- Utilisez -p/-m pour trier rapidement par CPU/mémoire.

🔗 Voir aussi :
- Documentation officielle de systemd
- man systemd-cgtop