16 コアの Linux マシンがあります。
// uname -a
Linux lndbxdev01 2.6.24.7-108.el5rt #1 SMP PREEMPT RT
Mon Mar 23 10:58:10 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
// OS detail
Red Hat Enterprise Linux Server release 5.3 (Tikanga)
1 つの CPU が完全に 1 つのプロセス専用になるようにプロセス アフィニティをスケジュールしたいと考えています。
IRQ-nnnn, rpciod/nn
私が完全に専用であると言うとき、他の実行中のデーモンなどを、私のプロセスが興味を持っているものを除いて、利用可能なすべての CPUにバインドしたいという意味です。(私のOSでは、約500のプロセスを数えることができます)。
- そうすることで安全ですか、それとも現在実行中の CPU でそれらの一部を使用できるようにする必要がありますか?
- 少なくとも IRQ をバインドすると、パフォーマンスは向上しますか?
これらは頻繁にトリガーされる割り込みに接続されているため、カーネルがそれらを呼び出さなければならないため、頻繁なプロセス コンテキスト スイッチが発生します。
以下のメリットを期待しています。
- 1 つの CPU を実行する 1 つのプロセスが存在するため、プロセス コンテキストの切り替えはまったくありません。
- その CPU 上のプロセスに割り当てられたタイム スライスが増加するため、プロセス コンテキスト スイッチ (存在する場合) の前により長く実行されます。
敬具AFG