システムには32個のコア(それぞれ16個のコアを持つ2個のCPU)があり、ユーザーを4個のコアのみに制限したい(この4個のコアは100%使用)。マニュアルによると、2つのカーネルパラメータがあります
cpu.cfs_quota_us
。cpu.cfs_period_us
kernel.orgの例文書説明する:
With 500ms period and 1000ms quota, the group
can get 2 CPUs worth of runtime every 500ms.
# echo 1000000 > cpu.cfs_quota_us /* quota = 1000ms */
# echo 500000 > cpu.cfs_period_us /* period = 500ms */
このmsがどのように決定されるのか知りたいです。私の場合、クォータは32,000,000、期間は4,000,000だと思います。私は正しいですか?その内容はetc/cgconfig.conf
次のとおりです。
group ansys {
cpu {
cpu.cfs_quota_us = 32000000;
cpu.cfs_period_us = 4000000;
}
memory {
memory.limit_in_bytes = 8000m;
}
}
しかし、動作しません!エラーを実行すると、/etc.init.d.cgconfig start
次のエラーが発生します。
Failed to parse /etc/cgconfig.conf or /etc/cgconfig.d
[FAILED]Starting cgconfig service: /sbin/cgconfigparser; error loading
/etc/cgconfig.conf: Failed to remove a non-empty group
答え1
見る中央処理ユニットcgroup /コンテナパラメータ。それはあなたを許可します特定のCPUコアにコンテナを固定する。お客様の場合、コア 0-3 に対して 1 つのコンテナのみを指定し、別のコンテナが同じコアで実行されることを許可しないため、コンテナごとに 4 つのコアを 100% 活用することができます。
さらに、cpusetはCPU(共有/割り当て量を使用)よりも効率的な割り当てメカニズムです。