Thank you for reading this post, don't forget to subscribe!
1. Чтобы использовать cgroups, вы должны установить пакет «libcgroup» в вашей системе.
1 |
# yum install libcgroup |
2. Создайте файл конфигурации для cgroups (/etc/cgconfig.conf) и добавьте ниже конфигурацию.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# 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. Создайте файл определения правил cgroup — /etc/cgrules.conf со следующей конфигурацией:
1 2 3 4 |
# vi /etc/cgrules.conf # Assign tasks run by the mysql user to mysqldb mysql cpu,cpuset,memory mysqldb |
4. Запустите службу cgconfig и настройте ее на запуск при загрузке системы.
1 2 |
$ service cgconfig start $ chkconfig cgconfig on |
5. На данный момент группа ресурсов для MySQL готова и на месте.
Перезапустите mysqld, и ресурсы будут разрешены в соответствии с конфигом и правилами, приведенными выше.
6. Вы также можете найти и изменить ограничения группы ресурсов во время выполнения:
а. Чтобы найти пределы ресурса:
1 |
$ cgget -r memory.stat mysqldb |
б. Чтобы установить ограничения ресурсов:
1 |
$ cgset -r blkio.throttle.read_bps_device="8:1 0" iocap1 |
с. Чтобы сохранить текущий измененный конфиг для будущего использования:
1 |
$ cgsnapshot -s > current_cgconfig.conf |