web-dev-qa-db-ja.com

NUMAシステムのCPU /コアを1つだけ使用するようにLinuxを構成する方法

私は現在、AMDOpteronベースのNUMAシステムを使用しています。現在のプロジェクトのニーズに合わせて、LinuxとすべてのシステムプロセスでCPU0のみ(できれば、そのコアの1つのみ)を使用し、他のすべてのコアは自分のエゴイスティックなニーズに対応させたいと考えています。 本当にシステムパフォーマンスに影響を与えることはわかっていますが、今は問題ありません。

ですから、カーネルのソースコードをいじることなく実現できるかどうか知りたいです。 LinuxでのNUMAおよびSMPの実装の詳細に関する最新の記事へのリンクもありがたいです。

2

他のすべてのコアを残して...

これは、実際に他のコアを使用したいことを意味します。

他のコアの使用を開始する前に、タスクセットを使用して、実行中のすべてのユーザープロセス(initを含む)にアフィニティを適用します。例えば.

taskset 0x00000001 1

次に、アフィニティマスクを、「経済的ニーズ」を開始するプロセスの他のすべてに設定します。

taskset 0xFFFFFFFE $$

システムが単一のCPUにのみアクセスできるようにするブートオプションを設定しない限り、カーネルを1つのCPUのみで実行するように強制することはできません(とにかくばかげています)。

1
symcbean

2つの可能なカーネルパラメータがあります:

maxcpus

isolcpus

あなたの場合、maxcpusがより良い選択だと思います

追加

maxcpus=1

カーネルブートオプションへ

1
derchris