オートスケーリング

オートスケーリング

Liferay Cloudのオートスケーリング機能は、必要に応じてLiferayサービスのインスタンスを自動的に生成・破棄し、パフォーマンスを最適化します。 これは、サーバートラフィックの増加、メモリリーク、またはその他の急な変化に対処します。 デフォルトでは、すべてのLiferay Cloudアカウントで、この機能は 無効になっています

この機能を使用して、サービスはLiferay DXPインスタンスの数を 定義された最大数 (デフォルトでは10)まで自動的に増加(アップスケール)したり、LCP.jsonスケールプロパティで指定された数まで減少(ダウンスケール)したりできます。scaleプロパティは、実行するインスタンスの最小数を指定します。

  "scale": 2,
note

オートスケーリングは、本番環境のLiferay DXPサービスでのみ利用可能です。 オートスケーリングを有効にすると、サービスのインスタンスが増えるごとに1時間ごとの料金が発生します。 オートスケーリングの充電方法については、 オートスケーリングの充電方法 をご覧ください。

JVMメモリ設定

オートスケーリングが正しく機能するためには、LiferayイメージのJVMに適切なメモリ割り当てを設定することが重要です。 この割り当ては、サーバーの負荷に応じてメモリ使用量を拡大または縮小できるようにするために必要です。

liferay サービスの LIFERAY_JVM_OPTS 環境変数を設定し、 -Xms および -Xmx フラグを使用してメモリを割り当てます。 -Xms フラグは、サービスの開始時に初期メモリ割り当てを設定し、 -Xmx フラグは、JVMの最大メモリ割り当てを決定します。 たとえば、合計16 GBがプロビジョニングされ、このサービスで利用できる場合、プロパティを次のように設定できます:

-Xms4096m -Xmx12288m
note

まだバージョン 3.x.x のサービスを使用している場合は、JVM オプションを指定するのに LIFERAY_JVM_OPTS の代わりに LIFERAY_JAVA_OPTS を使用してください。 バージョン確認の詳細については、 サービススタックのバージョンについて を参照してください。

推奨される設定は、 -Xms フラグを使用可能なメモリの25%を使用して設定し、 -Xmx フラグを使用可能なメモリの75%を使用して設定することです。 Liferay サービスで使用可能なさまざまなレベルのメモリについて、推奨値のリファレンスについては次の表を参照してください:

使用可能なメモリ 推奨されるLIFERAY JAVA OPTS
8GB -Xms2048m -Xmx6144m
16GB -Xms4096m -Xmx12288m
24 GB -Xms6144m -Xmx18432m
32GB -Xms8192m -Xmx24576m
64GB -Xms16384m -Xmx49152m
note

LIFERAY_JAVA_OPTS変数は、-Xms-Xmx` だけでなく、他のフラグと一緒に使用されることもあります。 他のフラグが存在する場合は、他のフラグを削除せずにメモリ引数で環境変数を更新します。

この環境変数を Liferay サービスに追加するためのヘルプについては 環境変数の定義 を参照してください。

オートスケーリングの管理

以下の手順で、Liferay Cloud Console でオートスケーリングを有効または無効にします。

  1. 本番環境に移動します。
  2. Services] → [Liferay] → [Scale] に移動します。
  3. 自動スケーリングが無効になっている場合は、 [Enable Auto Scaling] をクリックして有効にします。 オートスケーリングが既に有効になっている場合は、[無効にするAuto Scaling]をクリックして無効にします。

オートスケーリングを有効にすると、Liferay Cloudはサービスを監視し、事前に定義した閾値に従って自動的にスケーリングします。

図1:サービスの [Scale] タブからオートスケーリングを有効または無効にします。

目標平均稼働率の指定

システム管理者は、 目標平均使用率 を指定することができます。 この値は、Liferay DXPサービス全体のメモリおよびCPU使用率の平均です。 オートスケーリングが開始される前に、その値のしきい値を超えなければなりません。

たとえば、3つのサービスインスタンスがそれぞれメモリの70%、90%、95%を使用する場合、平均メモリ使用率は85%です。 目標平均使用率が90に設定されている場合、アップスケーリングは必要ありません。 この状況でのアップスケーリングは、平均メモリ使用率がターゲットを超えた場合にのみ発生します。

使用可能なメモリの合計は、 LCP.jsonLCP.jsonによるコンフィギュレーション で参照される メモリ プロパティで指定されます。

サービスの LCP.jsonautoscale プロパティでターゲットの平均使用率を指定します:

"autoscale": {
    "cpu": 80,
    "memory": 90
}

autoscale プロパティが設定されていない場合、CPUとメモリの両方の使用率の目標平均使用率はデフォルトで80になります。

インスタンスの最大数の設定

デフォルトでは、オートスケーリングにより、 Liferay サービスのインスタンス数を最大10まで増やすことができます。 しかし、必要に応じてこのデフォルトを上書きして、より多くのインスタンスを使用することができます。 サービスで10個以上のデフォルトのインスタンスを使用するには、2箇所でデフォルトを上書きする必要があります:

  1. Web server serviceLCP_HAPROXY_SERVER_TEMPLATE_BACKEND_NUM environment variableを必要な最高値に設定します。 Liferay サービスは、 LCP_HAPROXY_SERVER_TEMPLATE_BACKEND_NUM で定義されているインスタンスの最大数(デフォルトでは10)を超えて拡張することはできません。

  2. LiferayサービスのLCP.jsonファイル内で、デフォルドの10以上のインスタンスが必要な場合、希望の最大インスタンスを指定します。 maxInstances フィールドを autoscale オブジェクト 内に設定します。

    "autoscale": {
        "cpu": 80,
        "memory": 80,
        "maxInstances": 15
    }
    

これら両方の設定を更新すると、オートスケーリングは必要に応じて、 liferay サービスのインスタンスを新たに定義した最大値まで増やします。

オートスケーリングとDXPアクティベーションキー

オンプレミスでLiferay DXPを使用するには、通常、アクティベーションキーを展開して検証する必要があります。 オートスケーリングが有効なLiferay Cloudでは、Liferay CloudチームがDXPアクティベーションキーの問題を解決し、必要に応じてアクティベーションキーの追加と削除を行います。