這 30 天要寫的是低延遲網路的維運,不是設備設定教學。
低延遲環境有個很煩的地方:東西慢下來的時候通常沒人會通知你,而且你手上不一定有數字可以證明它真的慢了。ping 在這裡幫不上忙,它量的是來回時間,誤差比你想量的東西還大。
所以我想先把量測弄清楚。用 ExaNIC 的硬體時戳量 Arista 7150 的單向延遲,再拉一台十年前的 3750 當對照組,看 cut-through 跟 store-and-forward 差多少。有了這個基準,後面才有辦法談交換器要盯什麼、RHEL 網卡要調什麼。
每篇最後我都會寫這件事在維運上要幹嘛。
有些交換器的延遲跟封包大小幾乎無關,有些會隨封包變長而線性增加。同樣是二層轉發,為什麼會差這麼多? 答案在 frame 的結構裡,只跟兩個欄位有關。 目的 MA...
前幾天都在算交換器,port-to-port 量到的是幾百 ns,為了它值不值得花那麼多工夫調?要回答這個問題,得先知道封包離開交換器之後還要走多遠。 從線上到...
昨天那七關裡有五關是軟體。kernel bypass 讓封包從網卡直接交給應用程式,不經過作業系統的網路堆疊。但五關裡真正被拿掉的只有兩關,搞清楚是哪兩關,才知...
前八天量了很多數字,現在回頭看,裡面只有一個是網路的延遲,其他全部在驗儀器。 八天數字的歸屬:只有一個屬於網路 量的是什麼 其實在驗儀器的哪一項...
Day 11 我有對這台 Arista 7150 立過一個預測:轉發模式切成 store-and-forward,64 到 1518 bytes 的延遲要多爬約...
錯誤計數器讀到 0,不一定代表沒問題:它可能才剛開始累計,也可能那個 port 根本沒有流量經過。今天整理判讀計數器的順序,再用已知數量的封包驗證 7150 數...
Day 16 把 Et2 的兩個 runt 歸到對端主機開機。今天先把交換器的錯誤欄位逐一對上它代表的故障,再用四種 link 事件去重現那兩個 runt。先講...
一條 10G 進、一條 10G 出,出口的頻寬剛好夠用,佇列堆不起來,discards 自然是 0。進出速率相同的時候,要讓佇列堆起來,得有兩條以上的流量擠同一...
行情資料走的是 IPv4 多播。今天用兩個多播群組,先看交換器在什麼條件下會洪泛,再讓兩個群組同時爆量,看出口佇列會發生什麼事。 送多播的工具 exanic-m...
佇列一旦超過 LANZ 門檻,留給處理的時間只剩毫秒等級。實測兩條接近線速的多播擠一個 10G 出口,約 2 ms 就碰到上限;總量只略超過 10G 的兩條廣播...