bucket-sort logo bucket-sort

プログラミングとインフラエンジニアリングの覚え書き

  • Posts
  • About
  • Contact
  1. Home
  2. All Posts
  3. 公開サーバーハングアップ時の記録 ③再現実験

公開サーバーハングアップ時の記録 ③再現実験

Feb 16, 2026 AWS , Apache , Linux bucket-sort

推測だけで対策を進めると見当違いになるため、 実際に再現できるかを確認した手順と観測結果を残しておきます。

この記事では、同等構成の検証環境で実施した再現試験の内容を整理します。

実施メモ

プロダクション環境では検証できないため、 対象サーバーを複製した検証環境を用意しました。

負荷生成には h2load を利用し、 HTTP/2 接続数を段階的に増やして変化を観測します。

h2load(1) — nghttp2 1.69.0-DEV documentation
https://nghttp2.org/documentation/h2load.1.html

検証環境

  • 検証開始時インスタンス: t2.micro(1 vCPU / 1 GiB RAM)
  • 構成: Apache + PHP-FPM + MySQL
  • 観測対象: Apache ログ、PHP-FPM ログ、top のリソース状態

事象の再現結果

負荷を徐々に増加させたところ、 本番で発生したものと近い「SSH 接続不能を伴うハングアップ状態」を再現できました。

観測結果は次の通りです。

  • SSH ログイン不能
  • AWS コンソールからの停止操作に時間を要する
  • 再起動後、Apache / PHP-FPM 側にタイムアウト・上限到達ログが残る

ハングアップ時の主なログ

# /var/log/httpd/error_log
[Wed Feb 16 08:36:14.373830 2026] [mpm_worker:error] [pid 2713:tid 2713] AH00286: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting

# /var/log/php-fpm/error.log
[16-Feb-2026 07:50:28] WARNING: [pool www] server reached pm.max_children setting (50), consider raising it

# /var/log/httpd/error_log (一部)
[Wed Feb 16 07:52:12.750689 2026] [proxy_fcgi:error] ... AH01075: Error dispatching request to : (polling)

ポイントは、 MaxRequestWorkers と pm.max_children の両方が上限に達していることです。

リソース観測

同時に top を監視したところ、 ハングアップ直前は次の傾向が見られました。

  • ロードアベレージが急騰(80超)
  • CPU の idle がほぼ 0%
  • kswapd0 の CPU 使用率が高騰
  • 空きメモリが急減し、スワップなし構成で回復不能に近い状態

この状態では、 Web リクエスト処理だけでなく OS の基本操作(SSH セッション処理)まで影響を受けました。

インスタンスタイプ変更での確認

「単純なスペック不足か」を切り分けるため、 インスタンスサイズを変更して同様の試験を実施しました。

  • t3.small(2 vCPU / 2 GiB): 同様のハングアップを確認
  • t3.medium(2 vCPU / 4 GiB): 同様のハングアップを確認

メモリ増強だけでは根本解決せず、 接続・ワーカー制御の設定面に問題があると判断しました。

結論メモ

再現実験により、 ハングアップは偶発障害ではなく、 高負荷時にワーカー上限到達とメモリ圧迫が連鎖して発生することを確認できました。

偶発障害ではなく、設定と負荷条件で再現する事象だと判断しました。 次に Apache / PHP-FPM の上限設計を見直しました。

セキュリティ DoS Apache PHP-FPM
← 公開サーバーハングアップ時の記録 ②ログ分析 公開サーバーハングアップ時の記録 ④対策 →

Related Posts

  • 公開サーバーハングアップ時の記録 ④対策 Feb 17, 2026
  • 公開サーバーハングアップ時の記録 ②ログ分析 Feb 15, 2026
  • 公開サーバーハングアップ時の記録 ①事象 Feb 14, 2026
  • ファイルアップロード機能で注意すべき代表的な脆弱性 Mar 10, 2026

Table of Contents

  • 実施メモ
  • 検証環境
  • 事象の再現結果
    • ハングアップ時の主なログ
  • リソース観測
  • インスタンスタイプ変更での確認
  • 結論メモ

Recent Posts

  • Laravel の Event / Listener で Pub/Sub を実装する Apr 2, 2026
  • [C#] delegate と event の仕組みを整理する Apr 1, 2026
  • Pub/Sub パターンとは何か Mar 31, 2026
  • PHP/Laravel で値の状態を判定するヘルパ関数まとめ Mar 30, 2026
  • Filament の dehydrated メソッドとは何か Mar 29, 2026

Categories

  • AWS27
  • C#22
  • .NET20
  • Laravel16
  • Linux12
  • Apache8
  • MySQL8
  • PHP8
  • DynamoDB6
  • Nginx5
  • WordPress4
  • インフラ4
  • Hugo3
  • セキュリティ3
  • .NET Framework1
  • Aurora1
  • Filament1
  • Git1
  • SQS1

Tags

  • AWS
  • C#
  • .NET
  • Laravel
  • PHP
  • MySQL
  • セキュリティ
  • Linux
  • Apache
  • Code Snippet
  • DynamoDB
  • NoSQL
  • PHP-FPM
  • RDS
  • DoS
  • Nginx
  • Windows
  • WordPress
  • パフォーマンス
  • 監視
  • Amazon Linux 2023
  • CMS
  • Docker
  • Ipset
  • Iptables
  • OPCache
  • Webサーバー
  • 認可
  • Aurora
  • Blade
Powered by Hugo & Explore Theme.