Runbook: show techsupport が timeout する¶
実行前提
show techsupport は CPU と I/O を大量消費し、コアな control plane プロセス(orchagent / bgpd / syncd)を一時的に block する可能性がある。実行前に df -h /var/dump で空き容量を確認(最低 2 GB 推奨)、/var/core の旧 core file は別途退避。AUTO_TECHSUPPORT の rate_limit_interval を一時的に伸ばす場合は元値を redis-cli -n 4 HGETALL "AUTO_TECHSUPPORT|GLOBAL" > /tmp/at.bak で保存し、終了後に戻す。途中中断したい場合は Ctrl+C ではなく別 session から sudo pkill -f generate_dump で停止(partial dump は /var/dump/ に残る)。
症状¶
show techsupport実行が長時間(> 30 分)終わらない--global-timeoutで abort し、不完全な dump しか取れない- 個別コマンドの
-c, --cmd-timeoutを超え、timeout: sending signal TERMが頻発
想定原因¶
debug dumpモジュール(--debug-dump)が ASIC の重い snapshot を取る: 大規模 ASIC で 1 module だけで分単位/var/log配下の log file が巨大:tarのgzipフェーズで CPU 飽和vtysh -c "show ..."系が hang: bgpd / zebra busy → コマンド単位で stucksyncdが SAI dump 中に busy: ASIC API 呼び出しが直列化されレスポンス遅延- core file / dump 過多: 過去 dump が片付かず
/var/dumpが容量圧迫
切り分け手順¶
flowchart TD
A[show techsupport が timeout] --> B{特定コマンドで stuck?}
B -- Yes --> B1[該当コマンドを除外 / 個別取得]
B -- No --> C{disk I/O 高負荷?}
C -- Yes --> C1[I/O 落ち着くまで待機 / nice 値調整]
C -- No --> D{database 応答遅延?}
D -- Yes --> D1[redis dump 範囲を絞る]
D -- No --> E[generate_dump.sh の timeout 値を引き上げ]
確認コマンド¶
1. 直近の dump サイズ / 残骸¶
- 期待: 過去 dump がローテーションされている
- 異常: 数十 GB 滞留 →
techsupport_cleanup.py動作不全
2. 個別コマンド timeout の頻度¶
- 期待: timeout が稀
- 異常: 数十件単位 → 特定コマンドが慢性的に hang
3. 重い debug dump をスキップ¶
- 比較で hang 主因が
debug dumpか log 圧縮か切り分ける
4. 並列実行の有無¶
- 期待: 同時実行は 1 本
- 異常: 複数 → 自動 techsupport(auto-techsupport)と手動が衝突。
AUTO_TECHSUPPORTを一時停止
5. auto-techsupport の頻度¶
sonic-db-cli CONFIG_DB hgetall "AUTO_TECHSUPPORT|GLOBAL"
sonic-db-cli CONFIG_DB keys "AUTO_TECHSUPPORT_FEATURE|*"
- 期待: rate-limit, retention 適正
- 異常: 短い間隔 → ストレージ枯渇の連鎖を起こす
対処方法¶
- timeout を引き上げて取り直す:
show techsupport --global-timeout 60 --cmd-timeout 10 /var/dump整理:sudo techsupport_cleanup.pyor 手動で古い tarball を削除- auto-techsupport の閾値調整:
config auto-techsupport global state enabled max-techsupport-limit 10 --silentで軽量 dump → 状況把握 → その後の絞り込み解析
関連ページ¶
- ../cli/show-techsupport.md
- ../config-db/auto-techsupport.md
- ../../internals/dump-utility-for-easy-debugging.md
引用元¶
-
sonic-net/sonic-utilities @ 39732bceb —
scripts/generate_dump↩ -
sonic-net/sonic-utilities @ 39732bceb —
show/main.py↩