在日常工作过程中,我们经常需要关注接口的响应时间,优化接口的时延,那么接口的响应时间由哪些部分组成呢?先给出一个公式:
接口响应时间 = 请求机器与服务器之间包往返时间 RTT * N + 业务处理处理时间
通过下面的一组实验数据,我们可以完整地解析出从请求接口,到接口返回最后一个字节的数据,所用的时间,下面是测试环境:
请求机器 ip:10.145.67.55
请求机器端口:51830
服务器 ip:10.109.93.26
服务器端口:8703
通过 curl 命令可以获取接口的响应时间:
curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" 'http://10.109.93.26:8703/xxx'
time_connect: 0.012622
time_starttransfer: 0.028162
time_total: 0.028248
时间指标解释 :
time_connect 建立到服务器的 TCP 连接所用的时间 12.6 ms
time_starttransfer 在发出请求之后,Web 服务器返回数据的第一个字节所用的时间,28.1 ms
time_total 完成请求所用的时间,28.2 ms
首先,可以通过 ping 命令找到获取 RTT (Round-Trip Ti