コンテンツにスキップ

QoS / Buffer / PFC / Watermark

この章は、SONiC の「ASIC のバッファをどう分けるか」「キューをどの順で出すか」「混んだら誰に止まってもらうか」「混み具合をどう測るか」を、読み手の質問順にまとめ直したものです。既存ページは buffer 計算、scheduler、PFC、watermark、reclaim といった単独 HLD に分かれていて、互いの関係が見えづらいので、ここでは「設定 → 流れ → 観測」を一本の地図にします。

BUFFER_POOL / BUFFER_PROFILE / BUFFER_PG / BUFFER_QUEUE / QUEUE / SCHEDULER / WRED_PROFILE / DSCP_TO_TC_MAP / TC_TO_QUEUE_MAP / PORT_QOS_MAP / PFC_WD といったテーブルは、最終的には SAI の buffer profile、queue、scheduler、PG オブジェクトに落ちます。PFC は受信側の輻輳通知、watermark / PFCWD はその記録と暴走停止です。同じ「輻輳」を別角度から見ているだけで、設定面は意外と直線的につながっています。

この章で答える質問

  • Buffer pool / profile / PG / queue はどのテーブルから読み始めるのか。
  • WRED / ECN、scheduler / shaper、PFC、watermark はどこで交わるのか。
  • Reclaim reserved buffer と dynamic headroom は何の問題を解決しているのか。
  • show buffershow queueshow priority-groupshow pfc は何を見せてくれるのか。
  • 輻輳で困ったとき、どの順番で観測コマンドを叩けばよいのか。

読み進め方

  1. 概念: pool / PG / queue / scheduler / WRED の登場順と境界。
  2. アーキテクチャ: BufferOrch / QosOrch / PfcWdOrch / FlexCounter と SAI への変換。
  3. 設定: lossless / lossy の代表設定、PFC、PFCWD、WRED の最小例。
  4. 運用: 輻輳・PFC storm・drop counter 調査の順序。
  5. 内部実装: reclaim、dynamic headroom、port add/del での再計算。
  6. 発展トピック: asymmetric PFC、historical PFC stats、watermark alignment、他章との境界。

関連ページ

章構成と進捗

ページ 状態 verification
concept ✅ 完成 (173 行) meta
setup ✅ 完成 (217 行) meta
operations ✅ 完成 (183 行) meta
internals ✅ 完成 (139 行) meta
advanced ✅ 完成 (100 行) meta

次に読むべき記事

この章を読み進める順

関連する HLD 7 件

関連トラブルシュート 5 件

関連する章

前提として読むべき章

派生で読むべき章

補完的に読む章