ログイン時のメンテナンス画面表示の原因調査

質問

⚠️ この事例は公開されてから1年以上経過しています。 情報が古い可能性がありますので、ご注意ください。

🕓 事例公開日 : 2024-05-28

【背景】

2024年5月2日の11時30分頃、一般ユーザーでのログインができなくなった。
モジュール反映時などにResinが再起動する際に出るエラー画面が表示された。


なお、SO管理サイトへのログインは可能で、機能も正常に動作していた。
システム管理者権限でのログインもできたが、ログイン後にメモリ使用率のメーターが動いていない状態だった。
jvm-app-0.logを見たところ、Resinの再起動は行われていなかった。



1. 事象

症状の説明:

2024年5月2日11時30分頃、一般ユーザーがログインしようとすると、Resin再起動時に表示されるようなエラー画面(メンテナンス画面)が表示され、ログインできなくなった。



2. 発生条件

・発生日時:2024年5月2日 11時30分頃
・影響範囲:一般ユーザーのログイン
・SO管理サイトとシステム管理者のログインは可能
・Resinの再起動は発生していない

回答

1. 原因

技術的な原因:

繰り返し実行されたファイルダウンロード処理により環境負荷が上昇し、ヘルスチェックがタイムアウトしたため、メンテナンス画面が表示されました。

技術的要因の分析:

・要因1:テナント管理のファイル操作機能で45秒以上かかるダウンロードが短時間に14回実行 → 処理時間の長いリクエストが集中
・要因2:11時35分頃の最大同時リクエスト数が64に到達(通常時の2倍以上) → サーバーリソースの逼迫
・要因3:Resin JVMログに「AlarmClock slow alarm」が複数回記録 → サーバー負荷の高い状態を検知
・要因4:「AnomalyAnalyzer Resin|Http|Request Time WARNING」が出力され、リクエスト処理時間が平均の12倍以上に延長 → レスポンス遅延の発生
・要因5:11時35分04秒のヘルスチェックレスポンスが大幅に遅延し、タイムアウト(10秒)を超過 → メンテナンス画面への切り替え

根本的な要因:

大容量ファイルのダウンロード処理が短時間に集中したことで、サーバーの処理能力を超えるリクエストが発生し、ヘルスチェック機能が正常に応答できなくなったことが根本原因です。

2. 対応方法

根本解決方法:

1. 大容量ファイルのダウンロードを短時間に集中させないよう、操作タイミングを分散させる
2. ファイルダウンロード操作を実施する際は、他の重要な業務処理と時間帯をずらす
3. 必要に応じて、ファイルサイズや同時ダウンロード数を見直す

暫定対処方法:

メンテナンス画面が表示された場合は、数分待機してから再度アクセスすることで、通常通りログインできるようになります。

3. 原因究明に至るまでの調査方法

1. 対象環境(am-ap01)の2024年5月2日11時35分頃のResin JVMログを確認
2. 「AlarmClock slow alarm Alarm」メッセージの出力を検出し、サーバー負荷の上昇を特定
3. 同時刻の最大同時リクエスト数を分析し、通常時の2倍以上(64リクエスト)であることを確認
4. 「AnomalyAnalyzer Resin|Http|Request Time WARNING」の出力から、リクエスト処理時間が平均の12倍以上に延長していることを確認
5. リクエストログ(request-2024-05-02.log)を解析し、11時34分頃から約2分間、テナント管理のファイルダウンロードが実行されていたことを特定
6. 11時00分から11時36分の間に、45秒以上かかるダウンロードが14回実施されていたことを確認
7. WEBサーバー(Apache)のアクセスログを調査し、11時35分04秒のヘルスチェックレスポンスが大幅に遅延していることを確認
8. ヘルスチェックのタイムアウト(10秒)を超過したことで、メンテナンス画面が表示されたと結論付け

補足情報

Accel-Mart Plusの個社利用環境では、intra-mart Accel Platformのヘルスチェックでエラーが検出された際に、自動的にメンテナンス画面が表示される仕様となっています。
詳細は以下のドキュメントをご確認ください。

メンテナンス画面表示の仕様:
https://aws.accel-mart.com/service_manual/texts/03_specifications/03_system_operations/02_other_operations.html#maintenance-page
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
Powered by Zendesk