Ping
網路時間指標
我試圖了解不同的網路指標,特別是那些與時間有關的指標。我發現自己迷失在定義中。從我到目前為止所做的研究中,我發現定義中存在一些矛盾,具體取決於來源,但這是我確定的**(可能是錯誤的!!)**:
- 延遲:數據包從客戶端到達目的地所需的時間,或者簡單地說是旅行時間。
- 往返時間 (RTT):請求到達目的地並返回給客戶端所需的時間。
- 響應時間:請求到達目的地得到處理以及處理結果到客戶端所需的時間。
所以我的問題是:
- RTT 只是 2 倍延遲嗎?
- RTT和響應時間有什麼區別?在我看來,它們是同一回事。
- 延遲和 RTT 是如何計算的?相對容易衡量的響應時間如何消除處理時間?
- 最後是上述所有問題的起源。使用 ping 命令時顯示的時間是延遲 RTT 還是響應時間?
很抱歉有很多問題,但它們都是相互關聯的,所以我覺得我不應該把它們分成多個文章。
其中,往返時間 (RTT) 絕對意味著通過網路往返。
延遲和響應時間更為通用,甚至可能並不意味著 IP 網路。一個系統的響應時間和使用者體驗都很糟糕,因為儲存系統是基於主軸的並且延遲很高。網路延遲可能是往返,但要說 RTT 以避免歧義。
ICMP 迴聲本身不足以作為性能衡量標準。它是控制數據,在路由器(CPU 控制平面而不是數據 ASIC)和主機(OS ICMP 實現而不是使用者空間軟體)中使用不同的路徑。您的典型 ping 實現是往返,因為 echo 協議不包括時間戳。(很少有網路堆棧啟用了ICMP TIMESTAMP 。)
相對容易衡量的響應時間如何消除處理時間?
通過測量兩者。使用者真正關心的是他們的請求得到服務之前的時間。總時間可能包括從使用者到數據中心的多次往返、伺服器端的處理時間,包括可能聯繫多個 API,以及客戶端的處理時間。
了解您的應用程序的協議。為使用者做一件事需要多少次往返,以及組件之間的網路延遲。
正如我們在 Stack Exchange 上一樣,Stack Overflow 的監控堆棧做了一個有趣的案例研究。收集所有指標,包括Web 瀏覽器時間,做一些簡單的分析,並從數據中出現模式。