2016-04-06 5 views
3

を返すNPROC。のJava Runtime.getRuntime()。availableProcessors()とは、私が<code>4 CPU</code>に制限されている<code>docker container</code>、内部<code>Java app</code>と<code>docker container</code>ランは、<code>10 CPU</code>を持っているマシンを実行している別の値

docker containernprocを呼び出して、私は結果4として取得するが、私はRuntime.getRuntime().availableProcessors()を呼び出すときに、私は結果として10を取得します。

  • ですが、なぜでしょうか?どうすればJavaすべてを見るCPU
  • Runtime.getRuntime().exec("nproc")を使用してほかに、Javaで同じ結果ASA nprocを得るための別の方法は何ですか?

答えて

1

ケンサイプ(下記リンク)によると、共有のCPUの代わりのcpusetの(ドッカでデフォルト)(プロセスのための固定CPU)を使用した場合のCPU /コアのない間違ったを示していないため、Javaのバグがあります。

私は自分自身が見間違った番号にかかわらず、この設定:

Runtime.availableProcessors()、なしドッキングウィンドウ:8 がドッキングウィンドウで、私はいつも4を取得し、使用している場合(1言う

NPROC一方 - cpusetの-のCPU = 0 < - CPU0に固定)

https://vimeo.com/138955223

+0

を参照してください私の無知を許しますが、この記事が削除された理由を私は理解しないでください。私は参照のためのリンクを提供し、最初の文章で重要な部分を追加しました...第二に、それは新しい質問ではありません。私が作っているポイントは、この問題は、OracleのJREで可能なバグであると(ケンサイプ)このバグについて語るほかに何か誰かに自分の考えを追加したことです。 –

関連する問題

 関連する問題