Linuxカーネルに特定のCPUを使用しないように指示する

Linuxカーネルに特定のCPUを使用しないように指示する

マルチコアシステムでいくつかのベンチマークを実行しようとしていますが、Linuxカーネルに特定のコアを避けるように指示したいと思います。〜しない限りこれを使用するように明示的に指示します。

私の考えは、ベンチマークのためにいくつかのコア(マシンには6つの物理コアがあります)を別々に設定し、CPUマスクを使用して特定のコアのベンチマークプロセスのみを許可できることです。

これは可能ですか?

答え1

パラメータを使用して、isolcpusカーネルスケジューリングから特定のCPUコアを分離できます。このパラメータをgrub.confに追加して再起動すると適用されます。

答え2

少し欲しいですか?プロセッサの好み(またはCPUの好み)。

関連するシステムコールは次のとおりです。sched_setaffinity(2)ただし、次まで使用する必要があります。pthread_set_affinity_np(3)これに対するベンチマークを作成したい場合。

関連コマンドは次のとおりです。ワークセット(1)ベンチマークしたいコマンド(またはシェル)でそれを使用できます。

可能であれば、ベンチマークに関連しない他の作業によってコンピュータに過負荷がかからないように注意してください。

または一部を使用してください。管理プログラム良いをクリックして、そのハイパーバイザーのゲストオペレーティングシステムとしてLinuxを実行します。次に、いくつかの制限されたCPUコアセットのみを使用するように設定しますxen(正確な詳細はわからないため、理解する必要があります)。 Debian(および関連)ディストリビューションではxen-linux-system-amd64xen-hypervisor-amd64xen-utilsxen-hypervisor-4.5-amd64xen-linux-system-4.0.0-1-amd64xen-utils-4.5

使用可能なコア数を制限するためにLinuxカーネルを構成する方法(カーネルをコンパイルするとき、またはGrubローダーを介してカーネルに特定のパラメーターを渡す方法)があります。

もちろん、特定のプログラム(デスクトップLinux PCなど)をベンチマークするときは、外部で実行されているプロセスがあまり発生しないように注意するのが最善です(これを見つけるには、、ps auxw使用pstree -p)。top少なくともほとんどの対話型アプリケーション(Firefox、Eメール、エディタ、EclipseなどのIDE)を閉じて終了し、ベンチマーク用に小さな端末のみを開いてください。batchログインせずに(GUIセッションなしで)バッチモードでベンチマーク(ベンチマークを有効または実行)することもできます。at小人またはケードまたはXfceちょっと…走りなさい)。

関連情報