症状
オペレーティングシステムに表示される論理プロセッサの数が、Elastic Compute Service (ECS) インスタンスタイプで指定された vCPU の数よりも少なくなっています。
原因
BOOT パラメーターの制限:`numproc` や `onecpu` など、プロセッサ数を制限するパラメーターが Windows のブート構成データ (BCD) に設定されています。
ハイパースレッディングの無効化:ECS インスタンスの構成で [コアごとのスレッド数] の設定が 1 になっているか、レジストリキーによってハイパースレッディングが無効化されています。
解決策
ステップ 1: BOOT パラメーターの制限を解除
コマンドラインを使用して、CPU コア数を制限するブートパラメーターを削除します。
ECS インスタンスにログインします。
ECS コンソール - インスタンスに移動します。上部のナビゲーションバーで、対象のリージョンとリソースグループを選択します。
対象インスタンスの詳細ページに移動し、[接続] をクリックして [ワークベンチ] を選択します。接続方法を [ターミナル] に設定し、ユーザー名とパスワードを入力して、グラフィカルターミナルページにログインします。
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を実行します。インスタンスを再起動して、構成を有効にします。
ステップ 2: ECS のハイパースレッディングを有効化
CPU 数を制限するブートパラメーターがない場合は、ECS インスタンスのハイパースレッディング構成を確認します。
インスタンスの停止
CPU オプションは、インスタンスが [停止済み] 状態の場合にのみ変更できます。
構成の変更
ECS コンソール - インスタンスに移動します。
対象インスタンスの ID をクリックして詳細ページを開きます。[設定情報] セクションで、[CPU オプションの変更] をクリックします。
表示されるダイアログボックスで、[コアごとのスレッド数] が 1 に設定されていないことを確認します。値が 1 の場合、ハイパースレッディングは無効になります。
インスタンスの起動
構成を保存した後、インスタンスを起動し、論理プロセッサの数を確認します。
ステップ 3: レジストリを調整して無効化されたハイパースレッディングを修正
[コアごとのスレッド数] が 1 でない場合は、セキュリティポリシーによってハイパースレッディングが無効にされているかどうかを確認できます。詳細については、KB4072698 をご参照ください。
ECS インスタンスにログインします。レジストリエディターを開くには、
アイコンを右クリックし、[ファイル名を指定して実行] をクリックして regeditと入力します。次のパスに移動します:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory ManagementFeatureSettingsOverrideおよびFeatureSettingsOverrideMaskキーを確認します。これらのキーが存在する場合、FeatureSettingsOverrideの値が 72 であり、FeatureSettingsOverrideMaskの値が 3 であることを確認してください。インスタンスを再起動して、構成を有効にします。