以下を使用して、8 ノードの NUMA マシンで Java 1.6 プロセスを実行しています。
numactl --cpunodebind=0 java -server com.foo.Bar
によって報告されているように、各ノードには 8 つの CPU がありますnumactl --hardware。
available: 8 nodes (0-7)
node 0 cpus: 1 2 3 4 5 6 7 8
node 0 size: ...
node 0 free: ...
node 1 cpus: 9 10 11 12 13 14 15 16
node 1 size: ...
node 1 free: ...
...
node 7 cpus: 56 57 58 59 60 61 62 63
node 7 size: ...
node 7 free: ...
関数呼び出しは をRuntime.getRuntime().availableProcessors()返します64。
制限Runtimeがあるにもかかわらず、プロセスのオブジェクトが 64 の使用可能なプロセッサを報告するのはなぜですか? cpunodebindJava プロセスで使用できる実際のプロセッサ数を取得する方法はありますか?