CPU使用量を制限するには、cpu.cfs_quota_usとcpu.cfs_period_usを使用してください。

CPU使用量を制限するには、cpu.cfs_quota_usとcpu.cfs_period_usを使用してください。

システムには32個のコア(それぞれ16個のコアを持つ2個のCPU)があり、ユーザーを4個のコアのみに制限したい(この4個のコアは100%使用)。マニュアルによると、2つのカーネルパラメータがあります cpu.cfs_quota_uscpu.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(共有/割り当て量を使用)よりも効率的な割り当てメカニズムです。

関連情報