config pfcwd サブコマンド¶
概要¶
config pfcwd は PFC watchdog の設定操作を pfcwd 実行ファイルへ委譲するラッパー。Click 側で範囲・選択肢を検証し、実際の CONFIG_DB 更新や daemon 連携は pfcwd 側が担う1。
コマンド一覧¶
| コマンド | 用途 |
|---|---|
config pfcwd start [options] <ports>... <detection-time> |
port 群で PFC watchdog を開始 |
config pfcwd stop |
PFC watchdog を停止 |
config pfcwd interval <poll_interval> |
counter polling 間隔を設定 |
config pfcwd counter_poll enable\|disable |
counter polling を有効/無効化 |
config pfcwd big_red_switch enable\|disable |
BIG_RED_SWITCH mode を有効/無効化 |
config pfcwd pfc_stat_history enable\|disable [ports]... |
historical statistics を有効/無効化 |
config pfcwd start_default |
default 設定で PFC watchdog を開始 |
各コマンドの詳細¶
config pfcwd start¶
用法:
config pfcwd start [--action drop|forward|alert]
[--restoration-time <100-60000>]
[--pfc-stat-history]
[--verbose]
<ports>... <detection-time>
<detection-time> は 100-5000 ms。--restoration-time は 100-60000 ms。ports には個別 port または all を渡す想定で、CLI は pfcwd start ... を組み立てて実行する2。
その他の設定¶
stopはpfcwd stopを実行する。interval <poll_interval>は 100-1000 ms の範囲を Click で検証し、pfcwd interval <poll_interval>を実行する。counter_poll,big_red_switch,pfc_stat_historyはenable/disableのみ受け付ける。start_defaultはpfcwd start_defaultを実行する。
注意¶
- このページで扱う
config pfcwdは wrapper であり、DB table 名や永続化の詳細はpfcwd側の実装に依存する。 show pfcwd config/show pfcwd statsも同じpfcwd実行ファイルへ委譲される。
関連リファレンス¶
- (関連リンクなし)
引用元¶
データフロー (手動作成)¶
flowchart LR
CLI["config pfcwd"]
PW["pfcwd<br/>(scripts/pfcwd)"]
CDB[("CONFIG_DB<br/>PFC_WD")]
DM["pfcwd_orch / pfc_actions"]
CLI --> PW
PW --> CDB
CDB --> DM
凡例
config 系 (CLI → pfcwd → CONFIG_DB → daemon) のミニ図。CONFIG_DB を直接介さないコマンドのため手動で記述。
関連 Topics¶
運用ヒント¶
典型的な利用シーン¶
- PFC watchdog の有効化、polling interval / detection-time / restoration-time の調整。
- deadlock 検出時の counters 取得。
よくある落とし穴¶
- PFC が有効でない queue に対して PFCWD を設定しても検知されない。
forwardaction を選ぶと PFC 自体が無効化されるため、輻輳の影響範囲が広がる。config pfcwd intervalが TypeError でクラッシュする (issue #4535):pfc_stat_history系コマンドがdetection_time/restoration_timeを持たないPFC_WDエントリを生成した場合、int(None)で例外が発生して polling interval を更新できなくなる。回避策:redis-cli -n 4 DEL "PFC_WD|EthernetX"で問題エントリを削除してから再試行する。- polling interval > detection time が無検証で受け付けられる (issue #4520): polling interval を先に大きな値に設定した後、detection time が小さいポートで pfcwd を有効化しても CLI はエラーを返さない。interval ≤ 最小 detection time となるよう手動で整合性を確認すること。
関連する show / debug¶
関連 CLI コマンド¶
show buffer— show buffer サブコマンドshow buffer pool— show buffer_pool / headroom-pool サブコマンドshow pfc— show pfc サブコマンドshow priority group— show priority-group サブコマンドshow queue— show queue サブコマンド
-
config pfcwdグループと各 command はconfig/main.pyの PFC watchdog セクションで定義される。https://github.com/sonic-net/sonic-utilities/blob/39732bceb8bdefe706518ab40623bbbba6ff33b9/config/main.py#L3450 ↩ -
startは Click の range/choice 検証後、pfcwd startに引数を渡す。https://github.com/sonic-net/sonic-utilities/blob/39732bceb8bdefe706518ab40623bbbba6ff33b9/config/main.py#L3454 ↩