web-dev-qa-db-ja.com

Cgroupを使用してCPU使用率を制限する

CPU使用率を制限するためにcgroupを使用しようとしています。私はこのガイドを使用しています https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-cpu_and_memory-use_case.html

私の/etc/cgconfig.confファイルは次のとおりです

mount {
cpu     = /mnt/cgroup/cpu,cpuacct;
cpuacct = /mnt/cgroup/cpu,cpuacct;
}

group wheel {
    cpu {
            cpu.shares="800";
    }
    cpuacct {
            cpuacct.usage="0";
    }
}
 group test1 {
    cpu {
            cpu.shares="200";
    }
    cpuacct {
            cpuacct.usage="0";
    }
}

私のcgrules.confは次のとおりです

@wheel cpu,cpuacct wheel
@test1 cpu,cpuacct test1

私が実行しようとすると、次のようになります。

dd if=/dev/zero of=/dev/null bs=1024k

ユーザーの100%のCPU使用率はグループホイールとtest1に属していることがわかります

Service cgconfig statusでサービスを確認し、稼働しています

Loaded: loaded (/usr/lib/systemd/system/cgconfig.service; disabled)
Active: active (exited) since Mon 2015-03-02 17:29:19 EET; 7min ago
Process: 1240 ExecStop=/usr/sbin/cgclear -l /etc/cgconfig.conf -e   (code=exited, status=3)
Process: 56536 ExecStart=/usr/sbin/cgconfigparser -l /etc/cgconfig.conf -s         1664 (code=exited, status=0/SUCCESS)
Main PID: 56536 (code=exited, status=0/SUCCESS)

誰かが私が間違っていることを教えてもらえますか?どうもありがとう

10
SteveGr2015

cpu cgroupは、作業を節約します。競合がない場合、タスクはCPUの使用を停止しません。タスクが使用できるCPUの量に厳しい制限を設けたい場合は、cpu.cfs_quota_uscpu.cfs_period_usを設定してみてください。

ドキュメントを見てください ここ

20
Rohit Jnagal