【问题标题】:Can I use curl real time minus sys and user to generally get total response time我可以使用 curl real time 减去 sys 和 user 来获得总响应时间吗
【发布时间】:2018-01-27 13:14:40
【问题描述】:
【问题讨论】:
标签:
linux
curl
time
latency
【解决方案1】:
如果您使用curl,获取请求时间详细信息的最简单方法是使用-w/--write-out 选项。
您可以格式化输出以包含以下变量:
time_appconnect 从开始到完成与远程主机的 SSL/SSH/etc 连接/握手所用的时间,以秒为单位。 (7.19.0新增)
time_connect 从开始到 TCP 连接到远程主机(或代理)完成所用的时间,以秒为单位。
time_namelookup 从开始到名称解析完成所用的时间,以秒为单位。
time_pretransfer 从开始到文件传输即将开始所用的时间,以秒为单位。这包括特定于所涉及的特定协议的所有预传输命令和协商。
time_redirect 在开始最终事务之前,所有重定向步骤(包括名称查找、连接、预传输和传输)所用的时间(以秒为单位)。 time_redirect 显示多个重定向的完整执行时间。 (7.12.3新增)
time_starttransfer 从开始到第一个字节即将被传输所用的时间,以秒为单位。这包括 time_pretransfer 以及服务器计算结果所需的时间。
time_total 完整操作持续的总时间(以秒为单位)。时间将以毫秒分辨率显示。
例如:
$ curl httpbin.org/ip -s -o output -w 'dns: %{time_namelookup} sec\nconnect: %{time_connect} sec\nuntil first byte: %{time_starttransfer} sec\ntotal: %{time_total} sec\n'
dns: 0.061 sec
connect: 0.297 sec
until first byte: 0.502 sec
total: 0.502 sec
回答您的直接问题 - 不,从挂钟时间中减去进程和进程内核时间通常不会给您网络延迟或响应时间。考虑有许多进程竞争 CPU 的系统:在这种情况下,curl 进程的挂钟可能比实际服务响应时间长得多。