Outils pour utilisateurs

Outils du site


tech:cgroups_debian

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
tech:cgroups_debian [2025/03/24 15:06] – créée - modification externe 127.0.0.1tech:cgroups_debian [2026/06/16 15:29] (Version actuelle) Jean-Baptiste
Ligne 1: Ligne 1:
 +<!DOCTYPE markdown>
 +{{tag>Brouillon Debian Linux}}
 +
 +# Notes cgroup
 +
 +
 +Voir :
 +* http://blog.hintcafe.com/post/60223405371/resource-limiting-using-cgroups
 +* http://www.linuxmao.org/CGroup
 +* http://libcg.sourceforge.net/
 +* http://askubuntu.com/questions/345055/how-to-use-cgroup-in-ubuntu-13-04
 +* http://www.janoszen.com/2013/02/06/limiting-linux-processes-cgroups-explained
 +* http://www.serverwatch.com/tutorials/article.php/3921001/Setting-Up-Linux-Cgroups.htm
 +* https://unix.stackexchange.com/questions/22400/using-linux-cgroups-to-balance-cpu-performance
 +* http://hydra.geht.net/tino/english/faq/debian/squeeze/cgroups/
 +* http://upstart.ubuntu.com/wiki/Cgroup
 +* http://hydra.geht.net/tino/english/faq/debian/squeeze/cgroups/
 +* http://www.linuxmao.org/CGroup
 +* https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/Starting_a_Process.html
 +* [cpuset](https://codywu2010.wordpress.com/2015/09/27/cpuset-by-example/)
 +* https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/managing_monitoring_and_updating_the_kernel/assembly_using-cgroupfs-to-manually-manage-cgroups_managing-monitoring-and-updating-the-kernel
 +* https://docs.kernel.org/admin-guide/cgroup-v2.html
 +* https://github.com/kubernetes-sigs/kind/issues/3650
 +* https://linuxembedded.fr/2021/11/limiter-les-ressources-dune-ligne-de-commande-avec-systemd
 +* https://lpc.events/event/16/contributions/1184/attachments/1019/1963/delegation-slides.pdf
 +* https://www.freedesktop.org/software/systemd/man/latest/systemd.resource-control.html
 +* https://systemd.io/CGROUP_DELEGATION/
 +* https://blog.stephane-robert.info/docs/admin-serveurs/linux/cgroups/
 +
 +
 +Tester si tous est ok
 +~~~bash
 +apt-get install lxc
 +lxc-checkconfig
 +~~~
 +
 +ou 
 +~~~bash
 +#apt-get install docker.io
 +#/usr/share/docker.io/contrib/check-config.sh
 +~~~
 +https://github.com/opencontainers/runc/blob/main/script/check-config.sh
 +
 +
 +Dans Debian :mount cgroup automatically in mountkernfs.
 +
 +* https://wiki.debian.org/LXC
 +* http://blog.blaisethirard.com/creer-des-serveurs-virtuels-debian-7-wheezy-avec-lxc-sur-un-dedie-ovh-kimsufi-2/
 +* http://www.pointroot.org/index.php/2013/05/12/installation-du-systeme-de-virtualisation-lxc-linux-containers-sur-debian-wheezy/
 +* https://fralef.me/getting-started-with-lxc-on-debian-wheezy.html
 +* http://sylvain.fankhauser.name/setting-up-lxc-containers-in-30-minutes-debian-wheezy.html
 +* http://l3net.wordpress.com/2013/08/10/debian-virtualization-lxc-application-containers/
 +
 +Normalement sous Debian, les cgroup sont automatiquement montés (dans le mountkernfs)
 +~~~
 +$ mount | grep cgroup
 +none on /sys/fs/cgroup type tmpfs (rw,relatime,size=4k,mode=755)
 +systemd on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,name=systemd)
 +~~~
 +
 +
 +Si ce n'est pas le cas, la technique d'ajouter dans /etc/fstab
 +
 +`/etc/fstab`
 +~~~
 +cgroup          /cgroup         cgroup  defaults        0       0
 +~~~
 +
 +ou alors passer à systemd
 +
 +~~~bash
 +apt-get install systemd systemd-sysv
 +~~~
 +
 +Voir :
 +* https://medium.com/@johannes_gehrs/getting-started-with-systemd-on-debian-jessie-e024758ca63d
 +* https://wiki.debian.org/systemd
 +* http://www.linuxcore.fr/2012/10/systemctl/
 +
 +Mais comme nous choisissons la méthode avec des services (méthode à la Redhat)
 +
 +Pour connaître les ????? FIXME prit en charge par le noyau
 +
 +~~~
 +# lssubsys -a
 +cpuset
 +cpu
 +cpuacct
 +memory
 +devices
 +freezer
 +net_cls
 +blkio
 +perf_event
 +~~~
 +
 +Install du packet 
 +~~~bash
 +apt-get update && apt-get install -y cgroup-tools
 +~~~
 +
 +Puis
 +~~~bash
 +dpkg -L cgroup-tools
 +~~~
 +
 +
 +Donc
 +
 +~~~bash
 +mkdir /etc/sysconfig/
 +cp -p /usr/share/doc/cgroup-tools/examples/cgconfig.sysconfig /etc/sysconfig/cgconfig
 +cp -p /usr/share/doc/cgroup-tools/examples/cgred.conf /etc/sysconfig/cgred
 +cp -p /usr/share/doc/cgroup-tools/examples/cgred /etc/init.d/
 +cp -p /usr/share/doc/cgroup-tools/examples/cgconfig /etc/init.d/
 +cp -p /usr/share/doc/cgroup-tools/examples/cgconfig.conf /etc/
 +cp -p /usr/share/doc/cgroup-tools/examples/cgrules.conf /etc/
 +chmod a+x /etc/init.d/cgconfig /etc/init.d/cgred
 +ln -s /etc/sysconfig/cgconfig /etc/default/
 +ln -s /etc/sysconfig/cgred /etc/default/
 +sed -i -e 's|/var/lock/subsys/|/var/lock/|g' /etc/init.d/cgred 
 +sed -i -e 's|/var/lock/subsys/|/var/lock/|g' /etc/init.d/cgconfig
 +getent group cgred >/dev/null || groupadd -r cgred
 +~~~
 +
 +Puis prendre le fichier /etc/rc.d/init.d/functions sur une CentOS.
 +
 +~~~bash
 +mkdir -p /etc/rc.d/init.d/
 +cp -p functions /etc/rc.d/init.d/
 +~~~
 +
 +Commenter la ligne **[ -z "${CONSOLETYPE:-}" ] && CONSOLETYPE="$(/sbin/consoletype)"**
 +
 +~~~bash
 +vi /etc/rc.d/init.d/functions
 +~~~
 +
 +
 +Puis 
 +
 +~~~bash
 +mkdir /cgroup
 +cd /cgroup
 +mkdir $(lssubsys -a)
 +~~~
 +
 +Erreur sous Debian : 
 +~~~
 +# /etc/init.d/cgconfig start
 +Starting cgconfig service: Error: cannot mount memory to /cgroup/memory: No such file or directory
 +/usr/sbin/cgconfigparser; error loading /etc/cgconfig.conf: Cgroup mounting failed
 +[FAIL] Failed to parse /etc/cgconfig.conf ... failed!
 +~~~
 +
 +Solution : rajouter "cgroup_enable=memory swapaccount=1" à votre Grub :
 +
 +`/etc/default/grub`
 +~~~ini
 +GRUB_CMDLINE_LINUX="vga=795 cgroup_enable=memory swapaccount=1"
 +~~~
 +
 +~~~bash
 +update-grub
 +~~~
 +
 +Pour le debug si nécessaire :
 +
 +~~~bash
 +export CGROUP_LOGLEVEL=debug
 +~~~
 +
 +Autres
 +~~~
 +allocated 133693440 bytes of page_cgroup
 +please try 'cgroup_disable=memory' option if you don't want memory cgroups
 +~~~
 +
 +-----
 +
 +https://wiki.debian.org/LXC
 +
 +`/etc/fstab`
 +~~~
 +cgroup  /sys/fs/cgroup  cgroup  defaults  0   0
 +~~~
 +
 +* http://stackoverflow.com/questions/21337522/trying-to-use-cgroups-in-debian-wheezy-and-no-daemons
 +* http://blog.hbis.fr/2012/01/16/debian-webserver_and_cgroups/
 +* http://linuxaria.com/article/introduction-to-cgroups-the-linux-conrol-group
 +
 +`/etc/default/grub`
 +~~~ini
 +GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
 +~~~
 +
 +* http://blog.docker.com/2013/10/gathering-lxc-docker-containers-metrics/
 +
 +-------------
 +
 +~~~bash
 +sudo apt-get install cgroup-tools
 +
 +sudo cgcreate -a jean -g memory:plop
 +echo 10000000 > /sys/fs/cgroup/memory/plop/memory.kmem.limit_in_bytes
 +sudo cgexec -g memory:plop bash
 +~~~
 +
 +
 +-------------
 +
 +cgroupv1 ou v2 ?
 +~~~bash
 +podman info
 +docker info
 +
 +mount | grep cgroup2
 +
 +systemctl --user status
 +
 +grep cgroup /proc/filesystems
 +~~~
 +
 +
 +Pour passer à la version 2
 +~~~bash
 +grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=1"
 +~~~
 +
 +
 +Autres
 +~~~
 +cat /sys/fs/cgroup/user.slice/user-1003.slice/cgroup.controllers
 +cpuset cpu io memory pids
 +~~~
 +
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki