外部からプロセス/セッションを特定の数のコアに制限する必要があります。
CPUの好み(実際のコアを指定するのが好きではありません)とcgroup(プロジェクトに統合するのが難しい)に加えて、他の可能性はありますか?
答え1
CPU依存ビットの場合、通常、プログラムが実行される物理CPUに関連するさまざまな問題のセットを解決するように設計されています。そのため、CPUアフィニティで話す特定のCPUを指定する必要があります。
どのCPUが使用されているか気にしないという事実で判断すると、時間を再構成したいだけのようです。 cgroupは、実際に必要なものを達成し、実行CPUとは無関係にCPU時間を調整するメカニズムです。
決定的な違いは基本的に次のとおりです。プロセスが実行される物理コアに興味があるか、興味がないか、そうではありません。特定のCPUでプロセスを実行する必要があるパフォーマンス要件がない場合(特定のCPUキャッシュはホットのままで、関連プロセスが外部NUMAノードで実行されず、特定のCPUセットで特定の割り込みが処理されるなど)、CPU時間管理のみ制御できます。この場合、実際に「CPU時間」を意味するときに「CPUコア」という用語で考えるのは間違っています。
cgroupのどの部分を統合するのに問題がありますか?あなたが経験している特定の問題が何であるかがわかったら、答えを更新できます。
答え2
これを達成する他の方法が実際にないようだったので、私たちは最終的にcgroupを選択するようになりました。
Cgroupを使用すると、カーネルスケジューラcpu.cfs_period_us
とcpu.cfs_quota_us
。これにより、CPUコアの明示的な指定が防止されます。
答え3
これはあなたには大きすぎるかもしれませんが、私のコンピュータで利用可能なコアより少ないコアで何かをテストする必要がある場合は、VirtualBox VMを設定し、設定でCPUの数を指定します。