iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0
IT Operation

低延遲網路的維運工程:從 HFT 現場長出來的 30 天系列 第 6

Day 6:Arista 7150 轉發一個封包要 363 奈秒

  • 分享至 

  • xImage
  •  

今天要來說 Day 2 那篇留下的一筆帳。當時我寫「整段轉發時間塞得進 ping 的一個顯示格子裡,差幾倍我今天不算,因為手上還沒有實測值」,現在實測值有了。

ping 能顯示的最小一步 :1 微秒 = 1000 奈秒
7150 實際轉發一個封包 :約 363 奈秒

7150 整段轉發時間是 ping 一個格子的三分之一多一點。 ping 不是量不準,是它連一格都跨不過去。

port-to-port 延遲的扣除式

兩組量測的封包大小都是 64 bytes 各一萬筆。第一組是兩個 port 直接對接;第二組中間串一台 7150。

直連       中位數  60.00 ns    平均  61.05 ns
過交換器   中位數 428.00 ns    平均 429.58 ns

相減是 368。但答案不是 368,是 363

https://ithelp.ithome.com.tw/upload/images/20260919/20184063qMiAlOf1JS.png

那 4.96 是 Day5 量出來線材每公尺的傳播延遲。到這邊有人說不定會有些困惑,為什麼只扣一條線的長度,另一條完全不扣,這是今天真正要講的東西。

共同項相消,線 1 的長度不進結果

(註:線 1 是 3m DAC Cable ; 線 2 是 1m DAC Cable)
接法是這樣:直連的時候只接線 1,過交換器的時候線 1 進、線 2 出。

直連     :T_direct = 網卡TX + 線1 + 網卡RX
過交換器 :T_switch = 網卡TX + 線1 + 交換器 + 線2 + 網卡RX

兩行相減:

T_switch - T_direct = 交換器 + 線2

兩邊都有的東西相減就沒了,只有一邊有的才留下來。
所以線1不管是幾公尺,對結果完全沒有影響。 線2只有過交換器那次有,所以要自己扣。

我一開始想的是「兩條線加起來有四公尺,所以要扣四公尺的傳播延遲」。那是錯誤的,這樣會多扣掉線1的那三公尺。

⚠️ 但這件事有一個前提:兩次量測要用同一條線1。 換一條同型號同長度的也不行。同型號的線每公尺差多少,本來就是要靠量才知道的東西,不能假設兩條一模一樣。

扣錯的代價其實不大。 線2 是一公尺,扣的是約 5 奈秒,不扣就是 368,佔 363 的 1.4%,比儀器本身的雜訊還小。這段的價值不在數字差多少,在於你說不說得出自己為什麼這樣扣。量測方法能不能被別人重複,差別就在這種地方。

交叉驗證:標稱值、抖動分布、軟硬體雙時戳

一個數字量出來,要先想辦法從別的方向再確認一次。

第一,跟原廠標的比。 7150 這類交換器官方標稱約 350 奈秒。我量到約 363。兩個獨立來源落在同一個量級,這是標稱值唯一該有的用法:拿來對照,不拿來算。 後面所有倍率我都用 363。

第二,看抖動。 直連那組的全距是 16 奈秒,過交換器那組是 28 奈秒。

交換器只多帶進 12 奈秒的抖動

一台在排隊的設備不會這麼安靜。這個數字支持兩件事:它的轉發模式是 cut-through,而且那條線上沒有其他流量在跟我搶出口。

第三,換一支尺量同一件事。 同一批封包,硬體時戳跟軟體時戳都有記。

直連 過交換器 多出來
硬體時戳 60 428 368
軟體時戳 1383 1761 378

https://ithelp.ithome.com.tw/upload/images/20260919/20184063JoROoVthvQ.png

軟體時戳的絕對值大了二十幾倍,但「多出來」那一欄只差 10 奈秒。 這比任何一個單獨的數字都有說服力。

告警門檻的推導與重量時機

基線 363 奈秒,容許帶 ±12 奈秒,告警線 351 到 375。

那 12 是交換器自己多帶進來的抖動,也就是上面那兩個全距的差:直連 16 奈秒、過交換器 28 奈秒。比這個小的變動,分不出是設備變了還是量測抖動,盯它只會收到假警報。

重跑同一組指令,中位數落在 351 到 375 之間就是沒變。

這條門檻其實偏保守,而且我有數字說明原因。那兩個全距都是單次量測裡面的散布,不是每次重量之間中位數的跳動。實際上中位數穩得多:過交換器那組我量過七次,七次的中位數都是 428;直連那組量過十二次,十二次都是 60。

所以這條線幾乎不會誤報。 它會一直安靜,直到真的有東西變了。監控門檻寧可這樣訂,會叫的警報才有人看。

不要拿平均值去跟這條門檻比。 開頭那組數字的平均值是 429.58 跟 61.05,跟中位數差一奈秒多,兩個都是對的數字,但它們回答的不是同一個問題。門檻定在哪一種統計量上,重跑的時候就要拿同一種去比。

還有一件事要寫進變更流程。這台交換器的轉發模式如果被改了,363 這個數字就作廢。 那不是設備變慢,是它換了一種工作方式。改完之後不能只看告警有沒有響,要重新量一次基線,然後把 363 換掉。

明天講 frame size 掃描:如何證明它真的在做 cut-through,而不是我看到一個小數字就這樣假設。


上一篇
Day 5:封包變長為什麼延遲不變
下一篇
Day 7:封包從 64 變到 1518,交換器多花的時間量不出來
系列文
低延遲網路的維運工程:從 HFT 現場長出來的 30 天10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言