web-dev-qa-db-ja.com

NUMBER_OF_PROCESSORS環境変数はどのように生成されますか?

機器のアップグレードを開始するときに使用するプロセッサを決定するためにテストされているHPBL460Cがいくつかありますが、そのうちの1つでこの環境変数に問題があります。

ブレードはWindows7 Enterpriseを実行しており、NUMBER_OF_PROCESSORS変数は14プロセッサを報告しますが、マシンには2つの14コアプロセッサがインストールされているため、その数は2倍になるはずです。両方のプロセッサがインストールされ、msinfo32とデバイスマネージャを介してマシンによって検出されていることを確認できました。

変数の生成方法を混乱させる可能性のあるものはありますか? Windowsはこの数を設定するためにどのようなプロセスを使用していますか?編集できることは知っていますが、再起動後にリセットされるだけなので、あまり役に立ちません。あなたたちが持っているどんな洞察も非常にありがたいです。

更新:問題が変更または修正されるかどうかを確認するために、マシンをWindows 2008R2として再構築することを決定しましたが、問題は解決しませんでした。したがって、技術的に互換性のない構成が原因ではない可能性があります。

1
Justin

わかりました...私は本当にWindowsサーバーエディションの代わりにこれらのサーバーでWindows7を実行したい理由に興味があります。ご使用の環境について詳しく教えてください。

HP ProLiant BL460c Gen9 サーバーと2つのveryハイエンド Intel E5-2697v3 14 -コアCP

HPが製造した ワークステーション固有のブレードサーバー Gen8 ProLiantラインまでは、Gen9に相当するものはまだありません。

この時点で、私はいくつかのことを疑っています:

  • Windows 7 Enterpriseは2つのCPUソケットと64の論理コアをサポートできますが、1つのソケットに相当するCPUしか表示されていません。 28コアを見ることを期待していると思いますか?

  • システムはOSの観点から完全に更新されていますか?そうでない場合は、すべてのOSアップデートを実行してください。これは、非常に新しいサーバープラットフォームで数週間前にリリースされた新しいCPUです。現在、このOSとハードウェアの組み合わせを使用している他の人を見つけることはできないでしょう。

  • システムファームウェアの最新情報を入手していますか?そうでない場合は、更新してください。

  • HP 意図していませんでした このサーバーモデルをWindows 7で使用するため、そうすると、ハードウェア上でヘルス管理エージェントと付加価値ドライバーを実行する機能が失われます。

  • システムに Windows 2008 R2ドライバー/ファームウェア を使用できる可能性がありますが、すべてサポートされていません。

5
ewwhite

私の知る限りでは、 $ENV:NUMBER_OF_PROCESSORSは、以下を使用してWMIから派生します。Win32_ComputerSystem.NumberOfLogicalProcessors

混乱を増すために、Win32_ComputerSystemは、物理CPUの数もNumberOfProcessorsとして報告します。

WMICまたはPowerShellを使用して、次の値を評価できます。

Get-WmiObject -Class Win32_ComputerSystem|Select NumberOf*

マシンにNumberOfProcessorsが1と表示されている場合、Windows 7のEnterprise、Professional、Ultimateエディションのみが複数の物理CPUを認識するため、ハードウェアの問題またはライセンスアクティベーションの問題がある可能性があります。

6

Windows 7は、そのハードウェアで実行するためにサポートされているオペレーティングシステムではありません これは、インストールされているハードウェアについて正しくレポートされない理由を説明するのに十分です。 Mathiasの回答の他の理由 最終的にも原因である可能性がありますが、一般的に言えば、「サポートされていない構成」は、専門的なシステム管理の目的には十分な説明です。

Windowsシステムに関しては、BL460CでサポートされているのはWindows Server OS 2003以降のみであり、さらに言えば、ほとんどのHPサーバーハードウェアでサポートされています。

4
HopelessN00b

ジャスティン、私は以前にコメントを投稿しましたが、それは答えとして見られませんでした-しかしそれは私自身の解決策につながったので、私のシナリオのロジックを理解するのに役立つ仕組みと解決策を以下に再投稿しました。あなたが同じものを持っているかどうかを判断します。

イブニングジャスティンHPProliantブレードbl460cジェネレーション9ウィンドウズウィンドウズ2012r2でも同じ問題が発生します。第8世代はすべてを正しく報告しました。解決策を見つけましたか。私の調査結果は、 'echo%NUMBER_OF_PROCESSORS%'が、msinfo32、taskmanager、さらにはGet-WmiObject -Class Win32_ComputerSystem |と比較して誤った\一貫性のない応答を返すことです。 fl番号*

報告された数は8で、正しい数は16です。

HPとMicrosoftの両方と話し合ったところ、これはNUMAノードとインターリーブが原因のようです。

これは、biesを入力し、「ノードインターリーブ」を無効に設定することで解決されました。この後、 '%number_of_processors%'変数は、論理タスクマスター設定と同じ数のプロセッサーを返しました。だからこれは私にとって問題を解決しました。

nUMA設定の詳細については、以下を参照してください。 http://msdn.Microsoft.com/en-us/library/windows/desktop/aa363804(v = vs.85).aspx

3
JCB