🐧 Как настроить группы ресурсов Linux (cgroups) для MySQL

by itisgood

Ниже приведена процедура настройки и использования групп ресурсов в Linux:

1. Чтобы использовать cgroups, вы должны установить пакет «libcgroup» в вашей системе.

# yum install libcgroup
2. Создайте файл конфигурации для cgroups (/etc/cgconfig.conf) и добавьте ниже конфигурацию.
# 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 со следующей конфигурацией:
# vi /etc/cgrules.conf

# Assign tasks run by the mysql user to mysqldb
mysql cpu,cpuset,memory mysqldb
4. Запустите службу cgconfig и настройте ее на запуск при загрузке системы.
$ service cgconfig start
$ chkconfig cgconfig on
5. На данный момент группа ресурсов для MySQL готова и на месте.

Перезапустите mysqld, и ресурсы будут разрешены в соответствии с конфигом и правилами, приведенными выше.

6. Вы также можете найти и изменить ограничения группы ресурсов во время выполнения:

а. Чтобы найти пределы ресурса:

$ cgget -r memory.stat mysqldb

б. Чтобы установить ограничения ресурсов:

$ cgset -r blkio.throttle.read_bps_device="8:1 0" iocap1
с. Чтобы сохранить текущий измененный конфиг для будущего использования:
$ cgsnapshot -s > current_cgconfig.conf

You may also like

Leave a Comment