iT邦幫忙

2026 iThome 鐵人賽

DAY 17
0
IT Operation

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

Day 17:錯誤計數器的判讀與重現測試

  • 分享至 

  • xImage
  •  

Day 16 把 Et2 的兩個 runt 歸到對端主機開機。今天先把交換器的錯誤欄位逐一對上它代表的故障,再用四種 link 事件去重現那兩個 runt。先講結論:十次事件做下來,runt 沒有再增加。

交換器的錯誤欄位與對應的故障

show interfaces 的詳細輸出把錯誤拆得比 counters errors 細:

https://ithelp.ithome.com.tw/upload/images/20260930/20184063nMg7cF1DXH.png

欄位 意思 常見成因 Et2
CRC 收完整個 frame,FCS 驗不過 線材、光模組、接頭、對端 PHY 0
alignment frame 的位元數不是 8 的倍數,而且 FCS 也錯 實體層訊號 0
symbol PHY 解出不合法的編碼 線材、模組、干擾造成的訊號品質問題 0
runts 比 64 bytes 短的 frame 對端網卡或驅動送出不完整的 frame 2
giants 比 MTU 大的 frame(這台是 9214 bytes) 兩端 MTU 設定不一致 0
input discards 收進來但在入口被丟掉 入口資源不足、VLAN 不符等 0
output discards 出口佇列滿了被丟掉 擁塞,例如 microburst 0
PAUSE input/output 收到或送出的 pause frame 流量控制開著 0

counters errors 的 FCS 對應這裡的 CRC,Rx 對應 input errors,Et2 的 Rx 跟 input errors 都是 2。collisions、late collision、deferred 是半雙工留下來的欄位,10G 只有全雙工,出現非零值就是異常。

Day 16 那兩個 runt 的重現測試

Day 16 的推論是:「link 起來之前收不到 frame,所以它們是 link 建立那一刻進來的,最可能的成因是對端主機開機。」照這個推論,link 重新建立,runt 就應該再長出來。今天做了四種 link 事件:

link 事件 次數 Et2 的 link status changes Et2 的 runt
伺服器端 ip link down/up 3 2 → 8 2 → 2
實體拔插 DAC 3 8 → 14 2 → 2
交換器端 shutdown/no shutdown 3 14 → 20 2 → 2
伺服器關機再開機 1 20 → 22 2 → 2

https://ithelp.ithome.com.tw/upload/images/20260930/20184063zjrCo9PfzK.png

link status changes 每次斷線再接回加 2(一次 down、一次 up),十次加了 20,每次都確實斷過;CRC、alignment、symbol 也一直是 0。

關機再開機那次也沒有多出 runt。不過 Day 16 那次是交換器跟伺服器都重開過,今天的四種事件都沒有重開交換器,冷開機也只動伺服器端一次。十次都重現不出那兩個 runt。

健康基線

Day 16 到今天第一組讀數之間,Uptime 對得上、沒有重開過,錯誤欄位都沒有增加,這就是這條鏈路健康時的基線:

https://ithelp.ithome.com.tw/upload/images/20260930/20184063D3DMjoVuGC.png

show interfaces 還有一行 Day 16 沒用到:

Last clearing of "show interface" counters 21:12:26 ago

它是計數器上次歸零到現在過了多久,精確到秒。這台開機後沒 clear 過,所以跟 Uptime 一致;重開跟 clear counters 都會讓它重算。

Day 16 的判定抓不到一種情況:clear 之後,計數器又長得比上次讀數還大,光看計數器會以為沒被清過。Last clearing 這個時間可以補上,只要它比兩次讀數的間隔還短,就代表中間歸零過,這兩次讀數相減出來的增量不能用。

錯誤計數器的判讀方式

錯誤計數器看的是兩次取樣之間的增量。CRC 錯誤在 cut-through 下會往下游擴散,照 Day 11 那條,一增加就告警,查那一段的線材與光模組。其他錯誤欄位增加時,先對照同一段時間的 link 事件(link status changes、log)縮小嫌疑,再想辦法重現,重現得出來才算找到成因。

Et2 這兩個 runt 跟 link up 時間對得上、卻重現不出來,之後也沒再增加,這種就記錄下來繼續觀察;每次取樣都在增加的,就要查線材、模組跟對端。

取樣間隔決定事後能縮到多窄。 每分鐘取樣一次,要對照的就只剩那一分鐘的 log。

discards 今天一直是 0,一條 10G 進、一條 10G 出本來就塞不起來。門檻怎麼從這組基線推出來,是後面的題目。

明天看佇列:LANZ 怎麼在 discards 出現之前,就把 microburst 記下來。


上一篇
Day 16:交換器計數器的判讀順序與實測驗證
下一篇
Day 18:LANZ 佇列紀錄與 microburst 實測
系列文
低延遲網路的維運工程:從 HFT 現場長出來的 30 天 共 18 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言