そのPIDを持つプロセスがそのCPUで実行されている間、他のプロセスがそのCPUを使用できないように、1つのCPUを1つのプロセスに割り当てる方法
man taskset
から:
tasksetは、PIDを指定して実行中のプロセスのCPUアフィニティを設定または取得するため、または特定のCPUアフィニティで新しいコマンドを起動するために使用されます。 CPUアフィニティは、プロセスをシステム上の特定のCPUセットに「結合」するスケジューラプロパティです。 Linuxスケジューラは、指定されたCPUアフィニティを優先し、プロセスは他のCPUで実行されません。 Linuxスケジューラーは、自然なCPUアフィニティーもサポートしていることに注意してください。スケジューラーは、パフォーマンス上の理由から実用的な限り、同じCPUでプロセスを維持しようとします。したがって、特定のCPUアフィニティを強制することは、特定のアプリケーションでのみ役立ちます。
これにより、プロセスが特定のCPU(またはCPUセット)でのみ実行されることが保証されますが、アフィニティ設定では、これらのCPUで他のプロセスが実行されないことは保証されません。これを達成するために、niceness(またはNice levelを変更できると思います)プロセスの最小値(1)-詳細については、man Nice
およびman renice
を参照してください。
最低のNiceレベルを設定すると、実行中にプロセスがCPUを別のタスクに割り当てないことが保証されます-ただし、保証は100%ではありません(たとえば、システムに同じ優先度の別のプロセスがある場合、両方のプロセスがCPUを共有する予定)