Ping

Ping 延遲時間長但報告時間短

  • September 5, 2020

當 ping 報告合理的時間(~10 毫秒)但實際上需要相當長的掛鐘時間(~15)時,這意味著什麼?(此外,傳遞-U“完全使用者到使用者延遲”的選項沒有效果。)

當從我的工作電腦 ping 某個外部主機時會發生這種情況 - 我正在四處尋找,因為我也收到對同一主機的 HTTP 請求超時。類似的事情發生在 traceroute 上,僅在最後幾跳上,到達目的地的子網。

(另外,值得一提的是,外部主機是 cdn.sstatic.net,我知道它通常可以工作!)

如果您使用該-n標誌來禁止查找“主機地址的符號名稱”,會發生什麼情況?您所描述的這種行為通常表明由於反向 DNS 查找緩慢而導致延遲。

對於您給出的範例(cdn.sstatic.net),我看到沒有與正向條目相對應的有效反向條目(我看到 69.174.57.1​​02)。如果您使用嘗試反向查找的工具,這正是可能導致奇怪行為的那種情況。

是的,這可能是 DNS。

2種方法確定。strace -r ping … 顯示:

0.000014 fcntl(4, F_SETFL, O_RDWR|O_NONBLOCK) = 0
0.000015 poll([{fd=4, events=POLLOUT}], 1, 0) = 1 ([{fd=4, revents=POLLOUT}])
0.000020 sendto(4, "\305\351\1\0\0\1\0\0\0\0\0\0\10intel-01\20scinterane"..., 47, MSG_NOSIGNAL, NULL, 0) = 47
0.000022 poll([{fd=4, events=POLLIN}], 1, 5000) = 0 (Timeout)
 4.999871 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 5

DNS 查找的 4.999 秒延遲。

或者您可以直接 ping 主機名並直接 ping IP 地址。每當 ping 主機名始終比 ping IP 地址慢得多。這是由於 DNS 查找的延遲。

引用自:https://serverfault.com/questions/287971