CPUの一部で動作するようにプロセスを割り当てる方法は? [コピー]

CPUの一部で動作するようにプロセスを割り当てる方法は? [コピー]

私たちはただ最初の6つのCPU。 RHELマシンがあります。

合計12個のコアを持つ物理DELLシステムがあります(lscpu)。

プロセスが最初の6つのコアのみを使用するように指定できますか?

または、最後の6つのコアをマスクして実際に使用できる他の方法最初の6コア、または最後の6つのコアを無効にします。

メモ: 本当の理由は、コアあたりの費用を支払うからです。コア全体の半分が利用可能な場合は、価格の半分を支払うだけです。

ベストアンサー1

この用語はCPUの好み。このtasksetコマンドを使用して個々のプロセスに設定できます。

<command>最初の6コアでのみ実行(コア#0〜#5):

taskset -c 0-5 <command> [arguments for command]

プロセスがすでに実行されている場合は、PIDを介して好みを設定できます。

taskset -c 0-5 -p <PID of an existing process>

特定のプロセスに適用される制限が必要な場合そしてすべてのサブプロセスその後、Stephen Kittがコメントで述べたように、cgroupが必要です。問題のプロセスがsystemdサービスとして実行されている場合は、そのファイルのセクションCPUAffinity=0-5に追加するか、オーバーレイファイルを作成します。[Service].service

ただし、使用されるコアの数を制限する必要がある場合ライセンス目的で、関連ソフトウェアベンダーがどのような方法を許可しているかを確認する必要があります。簡単にキャンセルできない方法が必要な場合や、ソフトウェアが毎日使用するコア数(最大)の日次報告などのメカニズムが必要な場合があります。

おすすめ記事