LXC-SM(PaaS)のパフォーマンス問題のトラブルシューティング

パフォーマンスの問題は、503 Service Unavailableエラーからページ読み込みの遅さまで、さまざまな異なる症状で現れます。 この記事では、こうした問題を特定し、効果的に解決するためのガイドラインを紹介する。

環境

  • LXC-SM

パフォーマンス問題の一般的な兆候:

  • コンテナの再起動
    • 再起動によりサービスが利用できなくなった場合、503エラーが発生することがある。
    • コンテナの再起動を確認するには、以下の手順を実行する。
      1. クラウド コンソールの [Logs] タブに移動します。
      2. サービス」で「Liferay」を選択します。
      3. ステータスログを選択
      4. プローブの失敗を探す: Container liferay failed liveness probe, will be restarted
  • Liferay DXPのナビゲーションが遅い
    • Liferay DXPインスタンスをナビゲートする際に、ユーザーがパフォーマンスの低下を感じる場合、パフォーマンスに関連する問題が原因である可能性があります。

トラブルシューティングの手順

初期評価

パフォーマンスの問題がいつ発生し始めたかを理解することから始める。 最近環境に加えられた変更、特にカスタムコードの変更に関連する変更を確認する。 配備後に問題が発生した場合は、これらの変更を詳しく調査してください。 デプロイメントが発生していない場合は、すべてのページで速度が低下していないか確認し、テンプレートの変更や新しいデータの追加(Webコンテンツ、ドキュメントなど)を調べます。

可能であれば、以下の手順を踏む:

  1. バックアップの作成
  2. 環境を安定させるために本番から変更を戻す
  3. 問題のあるビルドを下位環境にデプロイする
  4. 作成したバックアップを下位環境にリストアする

これにより、本番環境に影響を与えることなく、より低い環境でのトラブルシューティングが可能になる。

データ収集

スレッドダンプの生成

  1. バージョン 5.0.18 以降の Liferay DXP docker イメージを使用している場合、Cloud Console 上の Liferay サービスのシェルで次のコマンドを実行するとスレッドダンプを生成できます: generate_thread_dump.sh
    1. スレッドダンプは /opt/liferay/data/sre/thread_dumps/{current_date} フォルダに保存され、ローカルで分析したり、Liferay サポートと共有することができます。
  2. 古いバージョンのイメージを使用している場合は、以下の手順に従ってスレッドダンプを生成してください:
    1. コマンドでディレクトリを作成する: mkdir /opt/liferay/data/thread_dumps
    2. ps aux | grep java
    3. スレッドダンプの生成を次のように実行する: jstack -l ${PID} /opt/liferay/data/thread_dumps/thread_dump1.txt
    4. スレッドダンプを5~10回作成し、各ダンプの間隔を5秒にすること。

これらの手順を踏んだ後、クラウド・コンソールのバックアップ・ページから手動バックアップを生成し、ドキュメント・ライブラリのバックアップをマシンにダウンロードして、ローカルでスレッドダンプを分析できるようにします。

ヒープダンプの生成

ヒープダンプはOOM(OutOfMemoryError:メモリ不足エラー)の診断に役立つ。 バージョン 5.0.18 以降の Liferay DXP docker イメージを使ってヒープダンプを生成するには、Liferay サービスのシェルから generate_heap_dump.sh というコマンドを実行します。

ヒープダンプは /opt/liferay/data/sre/heap_dump/{current_date}に保存されます。ドキュメントライブラリのバックアップの一部として解析のためにダウンロードし、Liferayサポートと共有することができます。

以下のJVMオプションが常にLIFERAY_JVM_OPTS環境変数に設定されていることを確認する:

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/liferay/data/heap-dump/

この設定は、OutOfMemoryErrorが発生したときにヒープダンプを生成する。

Liferay ログ

Liferayのログを徹底的に分析し、パフォーマンス上の問題を把握する。 特定の時間枠からログを取得するには、LCP CLIを使用します。 コマンドの例:

lcp log -p projectId -e envName -s serviceName --type application --since 
"2023-09-15T10:00:00+02:00" --until "2023-09-15T14:00:00+02:00"

サポートチケットの開設

パフォーマンスの問題に対処する際、Liferayサポートにご連絡いただく場合は、以下の情報をお知らせください:

  • 問題の明確な説明
  • 問題発生前に行われた変更の詳細
  • 問題が最初に発生した日時
  • Liferay ログ
  • portal-ext.properties
  • 可能であれば、再現ステップ
  • スレッドダンプとヒープダンプ(インシデント発生時や遅れが発生した時に採取される)
  • 影響を受ける環境URL
  • Liferayサービス LCP.json
  • Gradle.properties
この記事は役に立ちましたか?
1人中1人がこの記事が役に立ったと言っています