操作
機能 #863
未完了シェアラボサーバ ロードアベレージ高負荷調査・対策
ステータス:
新規
優先度:
急いで
担当者:
-
開始日:
2025-07-04
期日:
進捗率:
0%
予定工数:
Redmine Admin さんが約2ヶ月前に更新
🔍 原因判明 - bash_hook.py大量プロセス実行
📊 深刻な状況
- ロードアベレージ: 22.32 → 32.31 (正常値1.0未満)
- bash_hook.py プロセス: 数千個が同時実行されていた
- vmstat実行キュー: 996 processes (異常値)
🐛 根本原因: bash_hook.py無限実行ループ
プログラム内容分析¶
bash_hook.pyは「シェルコマンド実行監視システム」で以下を実行:
- ChatWork通知送信 (API: e1abee3e1ad14e536e590d2316b94554)
- SQLiteデータベース保存 (~/monitor/db/monitor.db)
- 全コマンド実行結果取得 (subprocess実行)
- リスク評価・詳細ログ記録
無限ループ発生メカニズム¶
.bashrc でコマンド実行フック
↓
bash_hook.py 実行
↓
subprocess.Popen() でコマンド実行
↓
新しいbashセッション開始
↓
.bashrc 再読み込み → 再度 bash_hook.py 実行
↓
【無限ループ】数千プロセス生成
⚡ 応急対策実施
# 全bash_hook.pyプロセス強制終了
pkill -f "bash_hook.py" # 数千プロセス削除
# 結果: プロセス数 数千個 → 0個
📈 vmstat との関連性
- 996 processes in run queue: bash_hook.py の大量プロセス待ち
- 高I/Oウェイト: SQLite書き込み・ファイルアクセス集中
- リソース競合: CPU/メモリ/ディスク同時アクセス
🛡️ 恒久対策が必要
- 自己実行ループ防止機能強化
- プロセス制限・実行間隔調整
- 監視システム設計見直し
操作