I/OスループットとIOPSは、AnalyticDB for PostgreSQLインスタンスのパフォーマンスに影響を与える重要な要素です。 現在のインスタンス設定のI/OスループットまたはIOPSが最大値に達すると、AnalyticDB for PostgreSQLデータベースの読み取りおよび書き込みパフォーマンスが低下し、レスポンスレイテンシが増加する場合があります。 このトピックでは、I/OスループットとIOPS、I/Oパフォーマンスに影響を与える要因、およびパフォーマンス最適化ポリシーについて説明します。
I/OスループットとIOPS
I/Oスループット: 単位時間あたりに処理できるデータ量。
IOPS: 単位時間あたりに実行できるI/O操作の数。
AnalyticDB for PostgreSQLインスタンスのI/OスループットとIOPSは、ノードの仕様、拡張SSD (ESSD) 容量、およびESSDパフォーマンスレベルによって異なります。
ノード仕様: 異なるノード仕様を持つインスタンスは、異なる最大ストレージ帯域幅を提供します。 たとえば、2つのコアを持つインスタンスは、最大1.0 Gbit/sのストレージ帯域幅と最大125のメガバイト/秒I/Oスループットを提供します。
ESSD仕様: ESSDあたりの最大I/Oスループットと最大IOPSは、ESSDの容量とESSDのパフォーマンスレベルによって異なります。 たとえば、単一のPL2 ESSDは、最大750メガバイト/秒I/Oスループットと最大100,000 IOPSを提供します。
ノード仕様とI/Oパフォーマンスの関係
異なるノード仕様は、様々なビジネス要件を満たすために異なる最大I/O性能を提供する。 次の表に、AnalyticDB for PostgreSQLインスタンスの4つのノード仕様で提供される最大I/Oスループットと最大IOPSを示します。
ノード仕様 | 最大IOPS | 最大I/Oスループット (MB /秒) |
2C8G 2C16G | 10,000 | 125 |
4C16G 4C32G | 20,000 | 187.5 |
8C32G 8C64G | 25,000 | 250 |
16C64G 16C128G | 40,000 | 375 |
ESSD容量、ESSDパフォーマンスレベル、およびI/Oパフォーマンスの関係
ESSDは高性能ストレージデバイスです。 AnalyticDB for PostgreSQLは、PL0、PL1、およびPL2の3つのESSDパフォーマンスレベルをサポートしています。 各パフォーマンスレベルは、異なる最大I/Oパフォーマンスを提供します。 さらに、ESSD容量はI/Oパフォーマンスに影響します。
次の表に、3つのESSDパフォーマンスレベルで提供される最大I/Oスループットと最大IOPS、およびESSD容量に基づいてI/OスループットとIOPSを計算する方法を示します。
パフォーマンスレベル | ESSDあたりの最大IOPS | ESSDあたりの最大I/Oスループット (MB /秒) | IOPSの計算方法 | I/Oスループットの計算方法 |
PL2 | 100,000 | 750 |
|
|
PL1 | 50,000 | 350 |
|
|
PL0 | 10,000 | 180 |
|
|
ESSDのI/OスループットとIOPSはESSD容量に比例しますが、各ESSDパフォーマンスレベルの最大パフォーマンスによって制限されます。 アプリケーションでより高いI/Oパフォーマンスが必要な場合は、より高いESSDパフォーマンスレベルを選択するか、ESSD容量を増やすことができます。 各ESSDパフォーマンスレベルには、パフォーマンスの上限があります。 ESSD容量のみを増やすと、より高いI/Oパフォーマンス要件を満たすことができない場合があります。 この場合、次のポリシーを参照してパフォーマンスを最適化できます。
パフォーマンス最適化ポリシー
AnalyticDB for PostgreSQLインスタンスのI/OスループットまたはIOPSにパフォーマンスのボトルネックが発生した場合、次のポリシーを使用してパフォーマンスを最適化することを推奨します。
ノード仕様のアップグレード
現在のノード仕様のI/OスループットまたはIOPSが最大値に近づいた場合は、AnalyticDB for PostgreSQLインスタンスのノード仕様をアップグレードすることを推奨します。 より高いノード仕様は、より高いコンピューティング機能とI/Oパフォーマンスを提供し、I/OスループットまたはIOPSボトルネックの解決に役立ちます。
インスタンスのノード仕様をアップグレードすると、データベース処理機能とユーザーエクスペリエンスが大幅に向上し、応答時間が短縮されます。 このポリシーは、大量のデータと複雑なクエリ (データ分析や機械学習など) を伴うI/O集約型のシナリオに最適です。 ノード仕様をアップグレードする方法については、「コンピュートノード設定の変更」をご参照ください。
ノード仕様のアップグレードには追加料金が必要です。 ノードの仕様をアップグレードする前に、包括的なパフォーマンスとコストの評価を実行して、ビジネス要件と予算目標を満たすソリューションを見つけることをお勧めします。 場合によっては、データベースパラメータやクエリを最適化して、コストを増やすことなくパフォーマンスを向上させることができます。 詳細は、「パフォーマンスパラメーターの最適化」をご参照ください。
要約すると、ノード仕様をアップグレードして、ビジネス要件と予算目標に基づいてAnalyticDB for PostgreSQLインスタンスのパフォーマンスを向上させることができます。 これは、主要な性能最適化方法である。
ESSDの容量を増やし、ESSDのパフォーマンスレベルをアップグレード
現在のESSDパフォーマンスレベルのI/OスループットまたはIOPSが最大値に達したら、ESSD容量を増やすことを推奨します。 パフォーマンスのボトルネックが続く場合は、ESSDパフォーマンスレベルをアップグレードします。
I/OスループットとIOPSはESSD容量に関連しているため、ESSD容量を増やすことは、I/Oパフォーマンスを向上させる直接的かつ効果的な方法です。 容量を増やすと、より高いデータストレージ機能、I/Oスループット、およびIOPSを提供することで、アプリケーション全体のパフォーマンスが向上します。 ESSD容量を増やすことは費用対効果が高く、アプリケーションのパフォーマンスに与える影響はわずかです。
ESSDの容量を増やした後にI/Oパフォーマンスをさらに向上させたい場合は、ESSDのパフォーマンスレベルをアップグレードできます。 これにより、より高い最大I/OスループットとIOPSを提供することで、I/Oパフォーマンスが向上します。 ESSDパフォーマンスのボトルネックが発生した場合、ESSDパフォーマンスレベルをアップグレードしてパフォーマンスを向上させることができます。 ただし、これには追加料金が必要になる場合があります。 パフォーマンスの向上とコストの増加の関係のバランスを取ります。
要約すると、ESSDの容量を増やし、ESSDのパフォーマンスレベルをアップグレードして、パフォーマンスとコストのバランスを取ることでパフォーマンスを向上させることができます。
ユースケース
このセクションでは、AnalyticDB for PostgreSQLインスタンスのストレージパフォーマンスが、ノードの仕様、ESSDの容量、およびESSDのパフォーマンスレベルによってどのように影響を受けるかについて説明します。
ケース1
AnalyticDB for PostgreSQLインスタンスAには、次のノード仕様とESSD仕様があります。
ノード仕様: 2コア。 最大ストレージI/Oスループットは125メガバイト/秒、最大IOPSは10,000です。
ESSDパフォーマンスレベル: PL1。 ESSDあたりの最大IOPSは50,000で、ESSDあたりの最大I/Oスループットは375メガバイト/秒です。
ESSD容量: 2,000 GiB。
このシナリオでは、AnalyticDB for PostgreSQLノードの最大ストレージI/Oスループットは125メガバイト/秒に制限され、最大IOPSは10,000に制限されます。 これでは、ESSD機能を最大化できません。
ケース2
AnalyticDB for PostgreSQLインスタンスBには、次のノード仕様とESSD仕様があります。
ノード仕様: 16コア。 最大ストレージI/Oスループットは375メガバイト/秒、最大IOPSは40,000です。
ESSDパフォーマンスレベル: PL1。 最大I/Oスループットは175メガバイト/秒であり、これは以下の式を用いて計算される。
min{120 + 0.5 × 容量, 350}。ESSD容量: 100 GiB。
このシナリオでは、AnalyticDB for PostgreSQLノードの最大ストレージI/Oスループットは、ESSD容量の175メガバイト/秒に制限されています。
ケース3
AnalyticDB for PostgreSQLインスタンスCには、次のノード仕様とESSD仕様があります。
ノード仕様: 16コア。 最大ストレージI/Oスループットは375メガバイト/秒、最大IOPSは40,000です。
ESSDパフォーマンスレベル: PL1。 ESSDあたりの最大IOPSは50,000で、ESSDあたりの最大I/Oスループットは375メガバイト/秒です。
ESSD容量: 2,000 GiB。
このシナリオでは、AnalyticDB for PostgreSQLノードの最大ストレージI/Oスループットは375メガバイト/秒に制限され、最大IOPSは40,000に制限されます。
上記のケースでは、互いに一致するAnalyticDB for PostgreSQLノード仕様とESSDパフォーマンスレベルを選択する必要があります。 AnalyticDB for PostgreSQLのESSDパフォーマンスがノードのパフォーマンスよりもはるかに高い場合、ESSDのパフォーマンスはノードのパフォーマンスによって制限され、十分に活用できない可能性があります。 ストレージのパフォーマンスを最適化し、システム全体の効率を向上させるには、適切なAnalyticDB for PostgreSQLノードの仕様とESSDのパフォーマンスレベルを選択し、ESSDの容量を増やす必要があります。
次の表に、上記のケースの解決策を示します。
ケース | ノード仕様 (コア) | ノード仕様の最大ストレージI/Oパフォーマンス | ESSDパフォーマンスレベル | ESSD容量 (GiB) | ESSDの最大I/Oスループット (MB /秒) | 制限事項 | 提案 |
実例1 | 2 | 125 MB/s 10,000 IOPS | PL1 | 2,000 | 375 | ノード仕様 | AnalyticDB for PostgreSQLインスタンスのノード仕様をアップグレードして、最大I/OスループットとIOPSを改善します。 |
実例2 | 16 | 375 MB/s 40,000 IOPS | PL1 | 100 | 175 | ESSD容量 | ESSDの容量を増やして、最大I/Oスループットを向上させます。 |
実例3 | 16 | 375 MB/s 40,000 IOPS | PL1 | 2,000 | 375 | 制限なし | 現在のパフォーマンスはビジネス要件を満たすことができます。 |