接口时长诊断
api-time
shell查接口耗时
curl -s -o /dev/null -w 'dns=%{time_namelookup} tcp=%{time_connect} tls=%{time_appconnect} ttfb=%{time_starttransfer} total=%{time_total} code=%{http_code}\n' https://igozhang.cn/bigmem
输出示例:ttfb(Time To First Byte)
dns=0.011109 tcp=0.295550 tls=0.588507 ttfb=0.894825 total=1.461084 code=200
DNS 解析 time_namelookup 解析器 /hosts 问题
TCP 握手 time_connect - time_namelookup 网络丢包、跨机房
TLS 握手 time_appconnect - time_connect 证书链长、OCSP 吊销检查
服务端处理 time_starttransfer - time_appconnect 2s 大概率在这
内容下载 time_total - time_starttransfer 响应体大、带宽
chrome查接口耗时
Chrome 打开 F12 → Network 面板,勾选 Preserve log,刷新或者复现接口,找到这个接口,点进去看【Timing】标签
- Queueing:浏览器请求排队。原因:浏览器同域名并发限制、请求被推迟、主线程阻塞
- Stalled / Blocked:浏览器等可用 TCP 连接;连接池耗尽
- DNS Lookup:DNS 解析耗时
- Initial connection:TCP 握手
- SSL:TLS 握手(https 才有)
- Request sent:把 HTTP 请求发出去(几乎瞬间)
- Waiting for server response (TTFB,Time To First Byte)