インスタンスのパフォーマンスを向上させるため、Alibaba Cloud では、ほとんどのインスタンスタイプでデフォルトでハイパースレッディングが有効になっており、1 つの物理コアが 2 つの論理コアに分割されています。ただし、メモリ負荷の高いシナリオやシングルコアの高パフォーマンスが求められるシナリオでは、ハイパースレッディングを無効にすることで、パフォーマンスを最適化し、ソフトウェアライセンスのコストを削減できます。
シナリオ
Alibaba Cloud では、マルチスレッドのパフォーマンスを向上させるため、ほとんどのインスタンスタイプでデフォルトでハイパースレッディングテクノロジーが有効になっています。ただし、特定のビジネスシナリオでは、ハイパースレッディングを無効にすることで、全体的なパフォーマンスの向上やコストの最適化に役立ちます。ハイパースレッディングを無効にする一般的なシナリオを以下に示します。
パフォーマンスを向上させるためのメモリ負荷の高いビジネスシナリオ
キャッシングサービスなどのメモリ負荷の高いワークロードでは、多数の同時スレッドは必要ない場合があります。したがって、ハイパースレッディングを無効にして、計算対ストレージ比を最適化し、サービスのパフォーマンスを向上させることができます。
パフォーマンスを向上させるための高いシングルコアパフォーマンス要件
シングルコアの高パフォーマンスが求められるシナリオでは、ハイパースレッディングを無効にすることで、スレッドの競合やコンテキストの切り替えによって発生するパフォーマンスオーバーヘッドを削減できます。
ソフトウェアライセンスコストを削減するための産業シミュレーション/設計シナリオ
一部の産業シミュレーションソフトウェア、設計ソフトウェア、および特定のオペレーティングシステムでは、コア数に基づいてソフトウェアライセンスが課金されます。有効な CPU コア数を減らすか、ハイパースレッディングを無効にして物理/論理コア数を減らすことで、ソフトウェアライセンスコストを効果的に節約できます。
課金
CPU オプションの変更は、有効なコア数またはハイパースレッディング設定にのみ影響し、インスタンスの CPU の総数には影響しません。したがって、インスタンスタイプの料金は変更されず、追加料金は発生しません。
制限
一部のインスタンスファミリでは、API、コマンドラインインターフェース (CLI)、または SDK を介してのみ CPU オプションを設定できます。
特定のインスタンスタイプのみが CPU オプションの設定(有効な CPU 数とハイパースレッディング設定の調整)をサポートしており、サポートされるパラメータの範囲はインスタンスタイプによって異なります。
説明以下の対応するインスタンスタイプのリンクをクリックすると、各インスタンスタイプでサポートされている有効な CPU 数 (CPU 物理コア) とハイパースレッディング構成 (コアあたりのスレッド数) の値を確認できます。
手順
インスタンスの作成時に CPU オプションを設定したり、既存のインスタンスの CPU オプションを変更したりできます。
インスタンスの作成時に CPU コア数とハイパースレッディング設定を行う
インスタンスの作成時に、有効な CPU コア数とハイパースレッディング設定を調整できます。以下の操作を参照してください。
コンソール
カスタム起動でインスタンスを作成する 際に、 で、有効にする物理コア数とハイパースレッディングの切り替えを設定できます。次の表に、この方法を選択した場合のパラメータを示します。
|
|
API
RunInstances オペレーションを呼び出してインスタンスを作成および起動する際に、有効にする物理コア数とハイパースレッディングの切り替えを設定できます。次の表に、パラメータを示します。
パラメータ | タイプ | 説明 |
CpuOptions.Core | integer | インスタンスで有効にする物理コア数。特定のインスタンスタイプのみが調整をサポートしており、特定の値のみを構成できます。詳細については、「制限」をご参照ください。 |
CpuOptions.ThreadsPerCore | integer | 1 コアあたりのスレッド数。このパラメータを 1 に設定すると、ハイパースレッディングが無効になります。特定のインスタンスタイプのみが調整をサポートしており、特定の値のみを構成できます。詳細については、「制限」をご参照ください。 |
CLI
CLI を介して RunInstances オペレーションを呼び出してインスタンスを作成および起動する際に、有効にする物理コア数 (CpuOptions.Core) とハイパースレッディング構成 (CpuOptions.ThreadsPerCore) を設定できます。CLI コマンドの例を以下に示します。
コマンドの意味: ecs.g7.8xlarge インスタンス (物理 CPU コア 16 個) を作成する際に、10 個の物理コア (CpuOptions.Core=10) を有効にし、ハイパースレッディングを無効にする (CpuOptions.ThreadsPerCore=1) ように設定します。
aliyun ecs RunInstances --RegionId cn-hangzhou \
--CpuOptions.Core 10 \
--CpuOptions.ThreadsPerCore 1 \
--ImageId aliyun_3_x64_20G_alibase_20250117.vhd \
--InstanceType ecs.g7.8xlarge \
--SecurityGroupId sg-bp1****** \
--VSwitchId vsw-bp1****** \
--SystemDisk.Category cloud_essd \
--Amount 1主要なパラメータの説明:
既存のインスタンスの CPU コア数とハイパースレッディング設定を変更する
既存のインスタンスの CPU コア数とハイパースレッディング設定を調整する必要がある場合は、最初にインスタンスを停止する必要があります。以下の操作を参照してください。
API
有効にする物理コア数とハイパースレッディングの切り替えを設定するには、次の API 呼び出しプロセスを参照できます。
StopInstance オペレーションを呼び出して、インスタンスを停止します。
ModifyInstanceAttribute オペレーションを呼び出して、CPU オプションを変更します。次の表に、パラメータを示します。
パラメータ
タイプ
説明
CpuOptions.Core
integer
インスタンスで有効にする物理コア数。特定のインスタンスタイプのみが調整をサポートしており、特定の値のみを構成できます。詳細については、「制限」をご参照ください。
CpuOptions.ThreadsPerCore
integer
1 コアあたりのスレッド数。このパラメータを 1 に設定すると、ハイパースレッディングが無効になります。特定のインスタンスタイプのみが調整をサポートしており、特定の値のみを構成できます。詳細については、「制限」をご参照ください。
StartInstance オペレーションを呼び出して、インスタンスを再起動し、構成を適用します。
CLI
有効にする物理コア数とハイパースレッディングの切り替えを設定するには、次の CLI 呼び出しプロセスを参照できます。
StopInstance オペレーションを呼び出して、インスタンスを停止します。
aliyun ecs StopInstance --region cn-hangzhou \ --InstanceId i-bp1******ModifyInstanceAttribute オペレーションを呼び出して、CPU オプションを変更します。
コマンドの意味: ID が i-bp1****** のインスタンスの CPU オプションを変更し、10 個の物理コア (CpuOptions.Core=10) を有効にし、ハイパースレッディングを無効にする (CpuOptions.ThreadsPerCore=1)
aliyun ecs ModifyInstanceAttribute --region cn-hangzhou \ --InstanceId i-bp1****** \ --CpuOptions.Core 10 \ --CpuOptions.ThreadsPerCore 1主要なパラメータの説明:
StartInstance オペレーションを呼び出して、ECS インスタンスを再起動します。
aliyun ecs StartInstance --region cn-hangzhou \ --InstanceId i-bp1******
参照
CPU オプションが正常に変更された後、システムが適切に動作することを確認するために、システムの安定性テストを実行することをお勧めします。負荷テストまたはアプリケーションシナリオテストを実行して、インスタンスの応答とパフォーマンスを観察できます。
ECS インスタンスが作成された後、インスタンスのパフォーマンスメトリックとリソース使用率を監視し、設定を最適化できます。詳細については、「インスタンスの監視情報を表示する」をご参照ください。
仮想化環境、マルチスレッドプログラミング、ハイパフォーマンスコンピューティングなどのさまざまなシナリオでは、CPU トポロジー構造 (
CpuOptions.TopologyType) を表示および変更する ことで、ECS インスタンスのパフォーマンスを向上させ、並列性を高め、リソース割り当てを最適化できます。
