Im Folgenden wird das Verfahren zum Konfigurieren und Verwenden von Ressourcengruppen unter Linux beschrieben:
1. Um cgroups zu verwenden, müssen Sie das „libcgroup“-Paket auf Ihrem System installieren:
# yum install libcgroup
2. Erstellen Sie eine Konfigurationsdatei für cgroups:
# vi /etc/cgconfig.conf mount { cpu = /cgroup/cpumem; cpuset = /cgroup/cpumem; memory = /cgroup/cpumem; } # High priority group group mysqldb { cpu { # Allocate the relative share of CPU resources equal to 75% cpu.shares="750"; } cpuset { # No alternate memory nodes if the system is not NUMA cpuset.mems="0"; # Allocate CPU cores 2 through 5 to tasks in the cgroup cpuset.cpus="2-5"; } memory { # Allocate at most 8 GB of memory to tasks memory.limit_in_bytes="8G"; # Allocate at most 16 GB of memory+swap to tasks memory.memsw.limit_in_bytes="16G"; # Apply a soft limit of 4 GB to tasks memory.soft_limit_in_bytes="4G"; } }
3. Erstellen Sie eine Cgroup-Regeldefinitionsdatei:
# vi /etc/cgrules.conf # Assign tasks run by the mysql user to mysqldb mysql cpu,cpuset,memory mysqldb
4. Starten Sie den cgconfig-Dienst und konfigurieren Sie ihn so, dass er beim Booten des Systems gestartet wird.
$ service cgconfig start $ chkconfig cgconfig on
5. An diesem Punkt ist die Ressourcengruppe für mysql fertig und vorhanden. Starten Sie mysqld neu und es werden Ressourcen gemäß der oben angegebenen Konfiguration und den Regeln zugelassen.
6. Sie können die Ressourcengruppengrenzen auch während der Laufzeit finden und ändern.
– So finden Sie Ressourcengrenzen:
$ cgget -r memory.stat mysqldb
– So legen Sie Ressourcenlimits fest:
$ cgset -r blkio.throttle.read_bps_device="8:1 0" iocap1
– So speichern Sie die aktuell geänderte Konfiguration für die zukünftige Verwendung:
$ cgsnapshot -s > current_cgconfig.conf