Centos 7 и systemd: квота процессора?

Информация о версии ОС:

[root@localhost system]# cat /etc/redhat-release 
CentOS Linux release 7.1.1503 (Core) 

Конфигурация для test.slice выглядит следующим образом:

[root@localhost system]# cat test.slice 

[Unit]
Description=Test Slice
Documentation=man:systemd.special(7)
DefaultDependencies=no
Before=slices.target
Wants=-.slice
After=-.slice

[Slice]
CPUAccounting=on
CPUShares=1024

Я создал еще один такой же файл (назовем его testhigh.slice) и дал ему доли ЦП = 128. Когда я запускаю процессы, потребляющие ЦП, в любом срезе, я вижу, что ЦП распределяется пропорционально, как и ожидалось.

Однако кажется, что нет никакого способа фактически ограничить ЦП одного слайса до постоянной, например. 10%. Параметр CPUQuota не распознается systemd:

Apr 23 21:34:00 localhost.localdomain systemd[1]: [/usr/lib/systemd/system/test.slice:22] Unknown lvalue 'CPUQuota' in section 'Slice'

В принципе, возможность точно распределять ресурсы была бы потрясающей, но сейчас я не могу заставить это работать. Пожалуйста помоги; Мне нужно решение внутри фреймворка systemd, если это возможно.


person sydraz    schedule 24.04.2015    source источник


Ответы (1)


Поставка systemd с RHEL/Centos 7 основана на версии 208. Похоже, что поддержка CPUQuota не включена до версии 213.

У вас должна быть возможность поэкспериментировать, запустив процесс в нужном фрагменте/области, а затем напрямую изменив соотношение cpu.cfs_{quota,period}_us в /sys/fs/cgroup/cpu/... Я ожидаю, что вы там установите for придерживайтесь какое-то время, пока нет активности systemd, которая может привести к повторной записи в файлы.

person sydraz    schedule 24.04.2015