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

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

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

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

  • vCPU コア

  • Memory (メモリ)

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

最小コアおよびメモリ要件

Mule アプリケーションの各レプリカに割り当てられる CPU とメモリの量の最小値は、次のとおりです。

  • vCPU コア: 0.07 コア

  • メモリ: 0.7 GiB メモリ (Mule 4) または 0.5 GiB (Mule 3.x)

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) がまとめられています。ほとんどの場合、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 コアの半分のみです。