問題の説明
オペレーティングシステムに表示される論理プロセッサ数が、Elastic Compute Service (ECS) インスタンスタイプに指定された vCPU 数よりも少なくなっています。
原因
-
BOOT パラメータの制限:Windows ブート構成データ (BCD) 内の
numprocまたはonecpuパラメータがプロセッサ数を制限しています。 -
ハイパースレッディングが無効になっている:ECS インスタンス構成で [コアごとのスレッド数] が 1 に設定されているか、レジストリ キーによってハイパースレッディングが無効になっています。
ソリューション
ブートパラメータによる制限の解除
CPU コア数を制限しているブートパラメータを削除します。
ECS インスタンスにログインします。
ECS コンソール - インスタンスに移動し、上部ナビゲーションバーで対象のリージョンとリソースグループを選択します。
対象インスタンスの詳細ページに移動し、[Connect] をクリックして、[Workbench] を選択します。 接続方法を [Terminal] に設定し、ユーザー名とパスワードを入力して、グラフィカルターミナルページにログインします。
-
BOOT パラメータの制限を解除します。
-
アイコンを右クリックし、[実行] をクリックし、powershellを入力して Enter キーを押します。 -
現在のブート構成を確認します。
bcdedit -
出力結果で
numprocまたはonecpuを確認します。いずれかが存在する場合は削除します。<identifier>を、前の手順で出力された Windows ブート ローダーの識別子に置き換えてください。# プロセッサ数の制限を削除 bcdedit /deletevalue "<identifier>" numproc # シングルプロセッサモードの制限を削除 bcdedit /deletevalue "<identifier>" onecpu識別子が
{current}の場合、必要に応じてbcdedit /deletevalue "{current}" numprocおよびbcdedit /deletevalue "{current}" onecpuを実行してください。 -
変更を反映させるために、インスタンスを再起動します。
-
ハイパースレッディングの有効化
ブートパラメータが CPU 数を制限していない場合は、ハイパースレッディング構成を確認します。
-
インスタンスを停止します。
CPU オプションは、インスタンスが 停止済み 状態の場合にのみ変更できます。
-
構成を変更します。
ECS コンソール - インスタンスに移動します。
-
インスタンス ID をクリックして詳細ページを開き、設定情報 セクションで [CPU オプションの変更] をクリックします。
-
ダイアログボックスで、コアごとのスレッド数 が 1 に設定されていないことを確認します。値が 1 の場合、ハイパースレッディングが無効になります。
-
インスタンスを起動します。
インスタンスを起動し、論理プロセッサ数を確認します。
レジストリによって無効になっているハイパースレッディングの修正
コアごとのスレッド数 が 1 でない場合は、セキュリティポリシーによってハイパースレッディングが無効化されているか確認してください。 KB4072698 をご参照ください。
-
ECS インスタンスにログインします。
アイコンを右クリックし、[ファイル名を指定して実行] をクリックして、regeditと入力してレジストリエディターを開きます。 -
以下の場所に移動します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management -
FeatureSettingsOverrideおよびFeatureSettingsOverrideMaskキーを確認します。これらが存在する場合は、FeatureSettingsOverrideを 3 に、FeatureSettingsOverrideMaskを 3 に設定します。 -
変更を反映させるために、インスタンスを再起動します。