アクティブ、アイドル、および同時 HTTP 接続のメリット
StorageGRID システムのパフォーマンスに影響するのは、 HTTP 接続の設定方法です。設定は、 HTTP 接続がアクティブであるかアイドルであるか、同時に複数の接続を使用するかによって異なります。
次の種類の HTTP 接続について、パフォーマンスのメリットを特定することができます。
-
アイドル HTTP 接続
-
アクティブ HTTP 接続
-
同時 HTTP 接続
アイドル HTTP 接続を開いておくメリット
クライアントアプリケーションがアイドル状態のときも HTTP 接続を開いておくと、クライアントアプリケーションで以降のトランザクションが発生したときに、それらの開いている接続を使用して実行することができます。アイドルHTTP接続を開いたままにしておく時間は、システムの測定値や統合の経験に基づいて10分以内にする必要があります。HTTP 接続をアイドル状態のまま 10 分以上開いていると、 StorageGRID によって自動的に閉じられることがあります。
アイドル HTTP 接続を開いておくと、次のようなメリットがあります。
-
HTTP トランザクションの実行が StorageGRID 必要と判断されてから StorageGRID システムでトランザクションが実行されるまでのレイテンシが短縮されます
レイテンシの短縮は、特に TCP / IP 接続と TLS 接続の確立に時間がかかる場合に大きなメリットとなります。
-
実行済みの転送が増えるにしたがって TCP / IP のスロースタートアルゴリズムによってデータ転送速度が向上します
-
クライアントアプリケーションと StorageGRID システムの間の接続が中断された、複数の障害状況の瞬時通知
アイドル接続を開いておく適切な時間は、既存の接続のスロースタートから得られるメリットと、内部システムリソースへの理想的な接続の割り当てとのバランスによって決まります。
アクティブ HTTP 接続のメリット
ストレージノードに直接接続する場合は、HTTP接続でトランザクションを継続的に実行する場合でも、アクティブHTTP接続の継続時間を10分に制限する必要があります。
接続を開いておく最大継続時間は、接続を維持することで得られるメリットと内部システムリソースへの理想的な接続の割り当てとのバランスによって決まります。
ストレージノードへのクライアント接続でアクティブHTTP接続を制限すると、次のようなメリットがあります。
-
StorageGRID システム全体で負荷を最適に分散できます。
時間の経過とともに負荷分散の要件が変わったため、 HTTP 接続が最適な状態でなくなることがあります。クライアントアプリケーションでトランザクションごとに別の HTTP 接続を確立すれば、システムによる負荷分散は最適になりますが、この場合、接続を維持することで得られるより大きなメリットを失うことになります。
-
クライアントアプリケーションからの HTTP トランザクションを使用可能な空きスペースがある LDR サービスに転送できる
-
メンテナンス手順を開始できます。
メンテナンス手順の中には、実行中のすべての HTTP 接続が完了してからでないと開始されないものがあります。
ロードバランササービスへのクライアント接続では、接続時間を制限することで一部のメンテナンス手順をすぐに開始できます。クライアント接続の時間が制限されていない場合、アクティブな接続が自動的に終了するまでに数分かかることがあります。
同時 HTTP 接続のメリット
StorageGRID システムへの TCP / IP 接続を複数開いて並列処理を可能にしておくと、パフォーマンスが向上します。最適な並列接続数は、さまざまな要因によって異なります。
同時 HTTP 接続には、次のようなメリットがあります。
-
レイテンシが短縮されます
他のトランザクションが完了するのを待たずに、トランザクションをすぐに開始できます。
-
スループットの向上
StorageGRID システムでは、トランザクションの並列処理が可能なため、全体的なトランザクションのスループットが向上します。
クライアントアプリケーションで複数の HTTP 接続を確立する必要があります。クライアントアプリケーションでトランザクションの実行が必要になったときは、確立された接続の中からトランザクションの処理に現在使用されていない接続を選択してすぐに使用することができます。
同時トランザクションや同時接続の最大スループットは StorageGRID システムのトポロジごとに異なり、それを超えるとパフォーマンスが低下し始めます。最大スループットは、コンピューティングリソース、ネットワークリソース、ストレージリソース、 WAN リンクなどの要因によって決まります。また、サーバやサービスの数、 StorageGRID システムでサポートするアプリケーションの数も影響します。
StorageGRID システムでは、複数のクライアントアプリケーションをサポートすることがよくありますクライアントアプリケーションで使用する同時接続の最大数を決定する場合は、この点に注意してください。クライアントアプリケーションを構成する複数のソフトウェアエンティティのそれぞれで StorageGRID システムへの接続を確立する場合は、それらのエンティティのすべての接続を合計して考慮する必要があります。次のような場合は、同時接続の最大数の調整が必要になることがあります。
-
StorageGRID システムのトポロジによって、システムでサポートできる同時トランザクションや同時接続の最大数が異なります。
-
クライアントアプリケーションがネットワークの限られた帯域幅で StorageGRID システムと通信する場合は、個々のトランザクションが妥当な時間で完了するように、必要に応じて同時実行の数を少なくします。
-
多くのクライアントアプリケーションで StorageGRID システムを共有する場合は、システムの制限を超えないように、同時実行の数を少なくする必要があります。
読み取り処理用と書き込み処理用に別々の HTTP 接続プールを使用する
読み取り処理と書き込み処理に別々の HTTP 接続プールを使用して、それぞれに使用するプールの容量を制御できます。HTTP 接続のプールを分けることで、トランザクションや負荷分散をより細かく制御できます。
クライアントアプリケーションで生成される負荷には、読み出し中心(読み取り)の負荷と格納中心(書き込み)の負荷があります。読み取りと書き込みで HTTP 接続プールを分けることで、各プールの量を調整してそれぞれのトランザクション専用に使用することができます。