curl 访问服务器接口时间过长排查

记录各大博客搜来的命令

 ==================================================================

查看curl 访问接口时各阶段时间

curl -o /dev/null -s -w "http_code: %{http_code}\time_namelookup: %{time_namelookup}\ntime_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" https://www.baidu.com

 

上面这条命令及返回结果可以这么理解:

time_namelookup: DNS 服务器域名解析的时间(以上时间单位都是s) 。

time_connect: client 发出请求,到 c/s 建立TCP 的时间;里面包括 DNS 解析的时间 。

time_starttransfer: client 发出请求;到 server 响应发出第一个字节开始的时间;包括前面的2个时间 。

time_total: 从请求发起到链接关闭的总耗时。 

curl 命令参数解释:

  1. -o: 把curl 返回的html、js 写到垃圾回收站[ /dev/null]
  2. -s: 去掉所有状态
  3. -w: 按照后面的格式写出rt
  4. time_namelookup: DNS 解析时间,从请求开始到 DNS 解析完毕所用时间,单位为秒,如果测试的地址为IP,这里耗时即为0
  5. time_commect: client 和 server 端建立 TCP 连接的时间,连接时间,从开始到建立TCP连接完成所用时间,包括前边DNS解析时间,如果需要单纯的得到连接时间,用这个 time_connect 时间减去前边 time_namelookup 时间
  6. time_starttransfer: 从 client 发出请求;到 web server 响应第一个字节的时间
  7. time_total: client 发出请求;到 web server 发送回所有的相应数据的时间
  8. http_code: http状态码,如200成功,301重定向,404资源未找到,500服务器错误等

 ==================================================================

# free -m  

发现内存占用并不高

# w  

发现cpu严重过载: load average: 204.15, 205.68, 203.43 (正常这三个值 小于1)

# ps -aux  查看用户的cup使用率找到元凶:数据库备份、同步的脚本文件

posted @ 2021-02-01 14:41  摩尔迦娜  阅读(1437)  评论(0)    收藏  举报