Ограничьте использование ЦП до 25 % на клиентскую базу с помощью контрольных групп.

Я хочу ограничить использование процессора пользователями только 25%. Для этого я использую cgroups.

Вот руководство, которому я следую: http://kaivanov.blogspot.in/2012/07/setting-up-linux-cgroups-control-groups.html

Это руководство работает с машиной с одним ядерным процессором, но когда я использую машину с 4-ядерным процессором, эта конфигурация не работает.

Вот моя конфигурация:

 # Configuration file generated by cgsnapshot
mount { 
    cpu = /cgroup/cpu;  
}

group test1 {
    cpu {
        cpu.rt_period_us="1000000";
        cpu.rt_runtime_us="0";
        cpu.cfs_period_us="100000";
        cpu.cfs_quota_us="-1";
        cpu.shares="250";
    }
}

group test2 {
    cpu {
        cpu.rt_period_us="1000000";
        cpu.rt_runtime_us="0";
        cpu.cfs_period_us="100000";
        cpu.cfs_quota_us="-1";
        cpu.shares="500";
    }
}

Что мне не хватает?

Заранее спасибо.


person Divij Satra    schedule 25.02.2015    source источник
comment
Конфигурация, которой вы поделились, просто означает, что test2 получит в два раза больше процессора, чем test1. Доли пропорциональны, они не учитывают размер машины. Если вы хотите жестко ограничить использование контрольной группы, вам нужно использовать cfs_period_us и cfs_quota_us. Чтобы использовать 1 ядро ​​ЦП от машины, установите cfs_quota_us таким же, как cfs_period_us (100000).   -  person Rohit Jnagal    schedule 26.02.2015
comment
Большое спасибо. Есть ли способ ограничить количество процессов с помощью cgroups?   -  person Divij Satra    schedule 26.02.2015
comment
Не сейчас. Были предложены патчи, но ни один из них не попал в исходное ядро ​​Linux.   -  person Rohit Jnagal    schedule 26.02.2015


Ответы (1)


Конфигурация, которой вы поделились, просто означает, что test2 получит в два раза больше процессора, чем test1. Доли пропорциональны, они не учитывают размер машины. Если вы хотите жестко ограничить использование контрольной группы, вам нужно использовать cfs_period_us и cfs_quota_us. Чтобы использовать 1 ядро ​​ЦП от машины, установите cfs_quota_us таким же, как cfs_period_us (100000).

person Rohit Jnagal    schedule 26.02.2015