Gestion des cgroups avec systemd

Ce TD est à réaliser dans une machine virtuelle Fedora. Avec les machines vagrant :

$ vagrant up systemd
$ vagrant ssh systemd

Objectifs

  • Configurer des limites de ressources avec systemd

cgroups et systemd

En général, systemd créé et configure la majeur partie des cgroups sur un système. Pour lister l’organisation mise en place par systemd :

$ systemd-cgls

Question 1 : Que constatez vous sur l’organisation des services avec les cgroups ?

Les variables (liées aux cgroups) modifiables à la volée sont listées dans systemd.resource-control(5).

Pour réduire dynamiquement et de façon permanente la valeur de CPUQuota d’un service :

$ sudo systemctl set-property <service> CPUQuota="20%"

Question 2 : Retrouvez les modifications effectuées par systemd dans l’arbre des cgroups (/sys/fs/cgroup/).

Pour effectuer une modification temporaire qui ne sera effective que jusqu’au prochain reboot :

$ sudo systemctl --runtime set-property ...

Activez l’accounting pour quelques services :

$ sudo systemctl set-property <service> CPUAccounting=true MemoryAccounting=true ...

Surveillez l’utilisation des ressources par ces services avec :

$ systemd-cgtop

Références