這 30 天要寫的是低延遲網路的維運,不是設備設定教學。
低延遲環境有個很煩的地方:東西慢下來的時候通常沒人會通知你,而且你手上不一定有數字可以證明它真的慢了。ping 在這裡幫不上忙,它量的是來回時間,誤差比你想量的東西還大。
所以我想先把量測弄清楚。用 ExaNIC 的硬體時戳量 Arista 7150 的單向延遲,再拉一台十年前的 3750 當對照組,看 cut-through 跟 store-and-forward 差多少。有了這個基準,後面才有辦法談交換器要盯什麼、RHEL 網卡要調什麼。
每篇最後我都會寫這件事在維運上要幹嘛。
錯誤計數器的告警看的是兩次取樣之間的增量,門檻從每條鏈路自己的基線推出來。實驗室這條鏈路健康時增量全是 0,門檻就訂在增量大於 0。Et2 的 runt 一直停...
一台為低延遲調過的主機,用 kernel 網路堆疊收一個封包、回一個封包,中位數 4.58 µs,是交換器 port-to-port 363 ns 的 12.6...
Solarflare X4522 的 interrupt coalescing 只在封包很密的時候才會拖慢延遲,而且實際等的時間比設定值長得多。每 1 ms 一...
網卡收到請求,要先由一顆 CPU 處理中斷,再叫醒回覆程式。這台 26 個核心在作業系統裡編號 CPU 0 到 CPU 25。比較中斷跟程式放在哪顆 CPU,量...
回覆程式所在的 CPU 有兩件事會拖慢收發延遲,一是 CPU 被其他程式佔用,二是閒置時進入省電狀態(C-state)。這次先用壓力測試工具 stress-ng...
exasock 跟 Onload 是兩套不用改程式的 kernel bypass:啟動指令前面加上 exasock 或 onload,就會攔下程式對 socke...
主機側的延遲調校,像是網卡的 interrupt coalescing、中斷跟程式放哪顆 CPU、CPU 隔離與 C-state、kernel bypass,改...
低延遲主機的設定被改掉,或重開機後沒有套用時,服務不會中斷,也不會觸發告警,只有收發延遲變慢。例如網卡中斷跟回覆程式原本在同一顆 CPU,被分到不同 CPU 之...
行情跟下單的路徑上如果有防火牆,每個封包都要多經過這一台設備,花多少時間要看封包是由硬體轉發還是由 CPU 處理。防火牆會替每一條流量建立一筆 session(...
低延遲網路上線之後,要確認延遲沒有變慢,靠的是可重現的量法、實測的基線,以及依基線訂出的門檻。這份手冊把 30 天的實測整理成這三部分,涵蓋量測儀器、交換器、伺...