Liferayサービスのスケーリング
Liferay Cloudの自動スケーリング機能は、パフォーマンスを最適化するために必要に応じて Liferay サービスインスタンスを自動的に作成および破棄します。 いつでも起動できるインスタンスの最小数と最大数を選択できます。 最小値を設定すると、サーバー トラフィックの増加、メモリ リーク、その他の問題などの突然の変化に対処できます。 最大値を設定することで、構成した最大値を超えてLiferay Cloudがインスタンスを作成することを防ぎます。 これによりコストは削減されますが、パフォーマンスの問題が発生するリスクがあります。 デフォルトでは、自動スケーリングはすべての Liferay Cloud アカウントで 無効 になっています。
自動スケーリングを使用すると、サービスはLiferay DXPインスタンスの数を 定義された最大値まで自動的に増加(アップスケール)したり、 LCP.jsonの scale プロパティで指定された数まで減少(ダウンスケール)したりできます。 スケール プロパティは、実行するインスタンスの最小数 (基本インスタンスに加えて) を指定します。
"scale": 2,
自動スケーリングを必要とするアプリケーションについては、アプリケーションのの リソース使用量 (CPU とメモリ) を定期的に監視します。 リソース要件をより深く理解することで、 JVM メモリ設定 と 自動スケーリング動作をより効果的に微調整できるようになります。
スケーリングの課金方法
オートスケーリングは、本番環境のLiferay DXPサービスでのみ利用可能です。 有効にすると、サービスの追加インスタンスごとに 1 時間ごとの料金が発生します。 この料金は、通常の Liferay PaaS サブスクリプション プロセスとは無関係です。
追加のインスタンスを使用またはデプロイする四半期末ごとに、Liferay から請求書が送信されます。 Liferay との契約に従ってこの請求書を支払う必要があります。
自動スケーリングによって追加されたサービスインスタンスごとに、料金はサブスクリプションプランによって異なります。 合計料金は、スケーリングされたインスタンスを使用した時間数に基づいて計算されます。 価格設定の都合上、暦四半期中の使用量の合計は、最も近い 1 時間単位に切り上げられます。
スケーリングの管理
Liferay Cloud Console で自動スケーリングを有効または無効にするには、次の手順に従います。
- 実稼働環境に移動します。
- サービス → Liferay → スケールに移動します。
- スイッチを切り替えて自動スケーリングを有効または無効にします。
- 作成する追加インスタンスの最小数と最大数を選択します。
サービスを削除して再デプロイすると、以前に有効になっていた自動スケーリングが無効になります。 ただし、サービスの LCP.json ファイルから自動スケーリング プロパティ ( scale プロパティや autoscale プロパティなど) を削除しても、サービス の自動スケーリングは 無効になりません。
自動スケーリングを有効にすると、Liferay Cloud はサービスを監視し、定義したしきい値に応じて自動的にスケーリングします。

追加インスタンスの最小数の設定
スケーリングが適切に機能するためには、Liferay イメージの JVM に適切なメモリ割り当てを設定することが重要です。 この割り当ては、サーバーの負荷に応じてメモリ使用量を拡大または縮小できるようにするために必要です。
liferay services LIFERAY_JVM_OPTS 環境変数を設定し、 -Xms および -Xmx フラグを使用してメモリを割り当てます。 -Xms フラグは、サービスの開始時に初期メモリ割り当てを設定し、 -Xmx フラグは、JVMの最大メモリ割り当てを決定します。 たとえば、このサービスに合計 16 GB がプロビジョニングされ、使用可能な場合は、次の構成を設定できます。
-Xms4096m -Xmx12288m
推奨される設定は、 -Xms フラグを使用可能なメモリの25%を使用して設定し、 -Xmx フラグを使用可能なメモリの75%を使用して設定することです。 コンテナ内の他のプロセスがより多くのメモリを必要とする場合にエラーを回避するために、常に -Xmx 値をサービスの使用可能なメモリの合計 よりも低く設定します。
liferay サービスで使用できるさまざまなレベルのメモリの推奨構成を次に示します。
| 使用可能なメモリ | 推奨されるLIFERAY_JVM_OPTS |
|---|---|
| 8GB | -Xms2048m -Xmx6144m |
| 16ギガバイト | -Xms4096m -Xmx12288m |
| 24GB | -Xms6144m -Xmx18432m |
| 32GB | -Xms8192m -Xmx24576m |
| 64GB | -Xms16384m -Xmx49152m |
LIFERAY_JVM_OPTS 変数は、 -Xms および -Xmxに加えて、他のフラグとともに使用される場合があります。 他のフラグが存在する場合は、他のフラグを削除せずに、メモリ引数を使用して環境変数を更新します。
この環境変数を liferay サービスに追加する方法の詳細については、 環境変数の定義 を参照してください。
追加インスタンスの最大数の設定
追加インスタンスの最大数を定義するには、
-
Web server serviceの
LCP_HAPROXY_SERVER_TEMPLATE_BACKEND_NUMenvironment variableを必要な最高値に設定します。Liferayサービスは、LCP_HAPROXY_SERVER_TEMPLATE_BACKEND_NUMで定義されているインスタンスの最大数(デフォルトでは10)を超えて拡張することはできません。 最大可能数は 50 インスタンス (基本インスタンス 1 つと追加インスタンス 49 個) です。 -
Liferay サービスのの スケール タブで、 最大インスタンス数 の数値を希望の値に更新します。
注このフィールドでは、インスタンスの基本数に加えて、自動スケーリングによって作成できる追加のインスタンス数を設定します。 作成できる最大合計数は設定されません。
-
更新をクリックします。
これら両方の設定を更新すると、自動スケーリングによって、新しく定義された最大値まで、 liferay サービスにインスタンスが追加されます。
目標平均使用率の指定
システム管理者は、 目標平均使用率を指定できます。 この値は、Liferay DXPサービス全体のメモリおよびCPU使用率の平均です。 オートスケーリングが開始される前に、その値のしきい値を超えなければなりません。
たとえば、3つのサービスインスタンスがそれぞれメモリの70%、90%、95%を使用する場合、平均メモリ使用率は85%です。 ターゲットの平均使用率が 90 に設定されている場合、アップスケーリングは必要ありません。この状況では、平均メモリ使用率がターゲットを超えた場合にのみアップスケーリングが行われます。
デフォルトの目標使用率は 80% です。 大量のメモリを使用するサービス ( liferay サービスなど) は、デプロイ直後であっても、この目標使用率の値をすぐに超える可能性があります。
サービスがダウンスケールするのは、サービスのメモリー使用量が目標使用量の半分以下になったときだけである。 デフォルトの目標使用率は 80% で、利用可能なインスタンス間の平均メモリ使用率が 40% を下回った場合にのみ、サービスはインスタンスの数を減らします。
使用可能なメモリの合計は、 LCP.json 経由の構成で参照されている LCP.jsonの メモリ プロパティによって指定されます。
サービスs LCP.jsonの autoscale プロパティで目標平均使用率を指定します。
"autoscale": {
"cpu": 80,
"memory": 90
}
最も効率的な自動スケーリングを実現するために、アプリケーションの特定のニーズに応じて目標平均使用率を調整します。 たとえば、次の構成では CPU 使用率を重視します。
"autoscale": {
"cpu": 60,
"memory": 95
}
autoscale プロパティが設定されていない場合、CPUとメモリの両方の使用率の目標平均使用率はデフォルトで80になります。
スケーリングとDXPアクティベーションキー
通常、セルフホスト型 Liferay DXP を使用するには、アクティベーション キーをデプロイして検証する必要があります。 Liferay Cloud では、スケーリングが有効になっている場合、Liferay Cloud チームが DXP アクティベーション キーの問題を解決し、必要に応じてアクティベーション キーを追加および削除します。
スケーリングの監視
「計画と使用状況」ページ には、プロジェクトのスケーリング情報が含まれています。 スケーリング タブに移動します。 スケーリングサマリーでは、
- スケーリングにより余分なノードを持つ環境はいくつありますか
- 選択した期間中にスケールノードが稼働していた時間数
- ノードに関連するコスト(米ドル)
ページには、読み込まれる前に終了したスケーリング イベントのみが表示されます。 開始されたものの、通常の値に戻されていないイベントは、終了するまでページに表示されない。
選択した期間の詳細なレポートは、 スケーリング レポートでも確認できます。