Anypoint Runtime Fabric でのリソース割り当てとパフォーマンス

Mule アプリケーションを Anypoint Runtime Fabric にデプロイする前に、適切な割り当てリソース数を決定します。リソース割り当ての決定は、Anypoint Runtime Fabric で内部ロードバランサを設定するときにも重要です。

Mule アプリケーションが Runtime Fabric にデプロイされるときに、そのアプリケーションは独自の Mule Runtime Engine (Mule) と共にデプロイされます。レプリカの数、またはそのアプリケーションとランタイムのインスタンスも指定されます。各レプリカに使用できるリソースは、アプリケーションのデプロイ時に設定した値によって決まります。

このトピックで提供されるパフォーマンス情報は、AWS EC2 M4 インスタンスを使用するコントローラノードが含まれる Runtime Fabric クラスタに基づきます。M4 インスタンスは EC2 専用に最適化されたカスタム Intel Xeon E5-2676 v3 Haswell プロセッサを搭載しています。プロセッサは 2.4 GHz のベースクロックレートで実行され、Intel Turbo Boost を使用すると 3.0 GHz まで上昇します。使用される負荷ジェネレータは、同じリージョンの別の AWS インスタンスでホストされます。

アプリケーションのデプロイ時に次のリソースを割り当てることができます。

  • vCPU コア

    • Reserved vCPU

      アプリケーションに対して保証されていて、アプリケーションで使用するために予約されている vCPU の数。

    • vCPU Limit

      アプリケーションで使用できる vCPU の最大数 (アプリケーションでバーストできるレベル)。これは、ワーカーノードで共有される CPU です。

  • Memory (メモリ)

vCPU の割り当て

[​Reserved vCPU​ (予約済み vCPU)] と [​vCPU Limit​ (vCPU 制限)] が等しい場合、保証されたモデルでワーカーノードの CPU が割り当てられます。コンテナでは、常に指定された数の CPU を使用できます。vCPU は、アプリケーションの各レプリカ用に予約されており、Runtime Fabric で他に何が実行されていても保証されます。

CPU の割り当てが保証されていると、他のアプリケーションとの CPU 競合がなくなり、アプリケーションの実行の一貫性が確保されます。すべてのケースでパフォーマンスが保証されます。

[​vCPU Limit​ (vCPU 制限)] の値が [​Reserved vCPU​ (予約済み vCPU)] の値よりも高く設定されていると、アプリケーションは、[vCPU limit (vCPU 制限)] の値またはワーカーノードの予約されていない vCPU の数のいずれか少ない方までバーストできます。

CPU バーストを使用するときは、次の要素を考慮する必要があります。

  • 最小予約済み vCPU: 0.02 vCPU。

  • vCPU の下限: 0.07 vCPU。

  • CPU 制限の上限は、ワーカーノードで提供される CPU コアによって決まります。

  • 簡単なアプリケーションおよび API ゲートウェイの CPU コアごとの使用数は最大 20 ~ 25 個にすることをお勧めします。使用量の大きいより複雑なアプリケーションでは、より多くの容量が必要になる場合があります。

  • Runtime Fabric は、ワーカーノードで少数のサービスを実行します。これらのサービスは、Anypoint Monitoring でログ転送が有効になっているかどうかに応じて 0.3 ~ 0.5 vCPU をコンシュームします。

  • アプリケーションは、ワーカーノードの残りの未割り当て CPU を求めて競合します。ワーカーノードにデプロイされているアプリケーションが多いほど、他のアプリケーションと共有できる未割り当て CPU が少なくなり、パフォーマンスが低下する可能性があります。アプリケーションとの CPU 競合を最小限に抑えるために、次の戦略を検討してください。

    • 日中に負荷がピークになる他のアプリケーションと共に夜間パッチアプリケーションをデプロイします。

    • アプリケーションの複数のレプリカをデプロイし、ワーカーノードで分散されるようにして、未割り当て CPU の表面積を最大化します。

      どのアプローチを選択する場合でも、テストを実行してパフォーマンスを検証します。

メモリの割り当て

Mule アプリケーションまたは API ゲートウェイの各レプリカに割り当てられるメモリの量の最小値は、次のとおりです。

  • 0.7 GB メモリ (Mule 4)

  • 0.5 GB メモリ (Mule 3)

CloudHub および Runtime Fabric のメモリ割り当ての計算

Anypoint Platform は、デプロイされたアプリケーションにネイティブメモリとヒープメモリを割り当てます。ヒープメモリは、Mule Runtime とアプリケーションで使用可能な合計メモリの一部です。ヒープメモリはペイロードの処理などのタスクに使用されます。

CloudHub と Anypoint Runtime Fabric とも、両方の種別のメモリを割り当てます。ただし、各メモリ種別のメモリ割り当てが計算される方法は異なります。

  • Runtime Fabric は、アプリケーションで使用可能な合計メモリを表示する。
    使用可能なヒープメモリは、アプリケーションに割り当てられる合計メモリの約半分です。

  • CloudHub は、アプリケーションで使用可能なヒープメモリの観点から最小メモリ要件を表す。

アプリケーションの起動時間

Mule アプリケーションの起動時間は、そのアプリケーションがアクセスできる vCPU コアの総数と相関しています。

vCPU コア おおよその起動時間

1.00

1 分未満

0.50

2 分未満

0.10

6 ~ 8 分

0.07

10 ~ 14 分

アプリケーションのパフォーマンス

Mule アプリケーションに割り当てられたリソースによって、アプリケーションのパフォーマンスが決まります。10-KB ペイロードで簡単な処理を実行する 1 つの Mule アプリケーションに割り当てられた vCPU コアの総数に基づく、スループットのおおよその値を次に示します。

vCPU コア 同時接続 平均応答時間 (ミリ秒)

1.00

10

15

0.50

5

15

0.10

1

25

0.07

1

78

Mule アプリケーションでパフォーマンステストと負荷テストを実行し、割り当てるリソースの数を決定します。

内部ロードバランサ

インバウンドトラフィックは、Anypoint Runtime Fabric によって管理される内部ロードバランサを使用して処理されます。このロードバランサは TLS の終了を担当するため、必要なリソースの数は受信接続の数と各要求の平均ペイロードサイズに基づいて調整されます。

パフォーマンステストの結果は、AWS EC2 M4 インスタンスを使用するコントローラノードが含まれる Anypoint Runtime Fabric クラスタに基づきます。パフォーマンステストで使用された負荷ジェネレータは、同じリージョンの別の AWS インスタンスでホストされました。M4 インスタンスは EC2 専用に最適化されたカスタム Intel Xeon E5-2676 v3 Haswell プロセッサを搭載しており、2.4 GHz のベースクロックレートで実行されました。Intel Turbo Boost を使用すると、クロックレートが 3.0 GHz まで上昇しました。

SSL 接続の効率がより高い C++ ベースの負荷ジェネレータを使用して、最大のスループットを実現しました。

次の表には、CPU コアの数に基づいて、内部ロードバランサの 1 つのレプリカで処理できるおおよその要求数 (平均 10 KB) がまとめられています。ほとんどの場合、Elliptical Curve Digital Signature Algorithm (ECDSA) のパフォーマンスは、2K RSA キーの 2 倍になります。サポートされている曲線は、secp521r1 (P-521)、secp384r1 (P-384)、secp256r1 (prime256v1 (P-256) とも呼ばれる) です。

Key Type (キー種別) CPU TLS (接続の再利用なし) TLS (接続の再利用あり)

RSA 2K

0.25

94 メッセージ/秒

1100 メッセージ/秒

RSA 2K

0.5

189 メッセージ/秒

2250 メッセージ/秒

RSA 2K

1

380 メッセージ/秒

4000 メッセージ/秒

RSA 4K*

0.25

14 メッセージ/秒

1048 メッセージ/秒

RSA 4K*

0.5

30 メッセージ/秒

2087 メッセージ/秒

RSA 4K*

1

59 メッセージ/秒

3700 メッセージ/秒

ECDSA P-256

0.25

234 メッセージ/秒

1150 メッセージ/秒

ECDSA P-256

0.5

451 メッセージ/秒

2257 メッセージ/秒

ECDSA P-256

1

860 メッセージ/秒

4100 メッセージ/秒

*RSA キーの長さを 2 倍にすると、パフォーマンスが 6 倍以上低下します。

内部ロードバランサは、Runtime Fabric のコントローラ VM で実行されます。インバウンドトラフィックの量と種別に基づいて、VM のサイズを設定します。内部ロードバランサに割り当てることができるのは、各 VM で使用可能な CPU コアの半分のみです。

キー種別

RSA キーは最も一般的なキー種別です。2K の長さの RSA キーは、セキュリティとパフォーマンスの最適なバランスを実現します。

2K よりも長い RSA キーは、ブルートフォースクラッキングを防ぎ、有効期限が何年もある証明書に適しています。ただし、2k から 4k のようにキーの長さが 2 倍になると、パフォーマンスが 6 倍以上低下します。

ECDSA キーもサポートされています。ほとんどの場合、ECDSA のパフォーマンスは、2K RSA キーの 2 倍になります。サポートされている曲線は、次のとおりです。

  • secp521r1 (P-521)

  • secp384r1 (P-384)

  • secp256r1 (prime256v1 (P-256) とも呼ばれる)