一个伪linux粉丝的blog

  1. 首页
  2. unix/linux
  3. 正文

curl-w

22 2 月, 2020 1757点热度 5人点赞 0条评论

排障过程中发现curl的一个不太常见参数-w,检查 time_appconnect 非常好用,记录一下。

接到用户反馈一个服务容器内部调用一个接口是相当慢会出现卡顿,如图示

2. 新发现

上图2次curl,一次秒出结果,1次无反应,这样的信息其实不全,当然想查看明细,网上找了一圈,发现了1个非常有用的参数。

-w 格式化输出  https://curl.haxx.se/docs/manpage.html#-w

https://cizixs.com/2017/04/11/use-curl-to-analyze-request/

 

2.1. 格式如下:

1
2
3
4
5
6
7
8
9
10
11
<span class="line">cat curl-format.txt</span>
<span class="line">    time_namelookup:  %{time_namelookup}\n</span>
<span class="line">       time_connect:  %{time_connect}\n</span>
<span class="line">    time_appconnect:  %{time_appconnect}\n</span>
<span class="line">      time_redirect:  %{time_redirect}\n</span>
<span class="line">   time_pretransfer:  %{time_pretransfer}\n</span>
<span class="line"> time_starttransfer:  %{time_starttransfer}\n</span>
<span class="line">                    ----------\n</span>
<span class="line">         time_total:  %{time_total}\n
 
</span>

  • time_namelookup: DNS解析时间
  • time_connect:tcp建联时间
  • time_appconnect:SSL/SSH 等上层协议建立连接的时间,比如 connect/handshake 的时间。注意,即使curl语句中带有-k参数(忽略证书校验),这一项时间仍然存在,因为-k只是忽略证书的校验,本身SSL握手仍然存在。
  • time_redirect:从开始到最后一个请求事务的时间
  • time_pretransfer:从请求开始到开始传输的时间
  • time_total:这次请求花费的全部时间

 

3. 实际操作

本次检查命令如下

curl -w "@curl-format" -o /dev/null -s https://域名打码.com:9443/receiveHTTPData

2020-11-13新增改进版

alias curltime="curl -w \"@curl-format\" -o NUL -s "
下次就可以直接 curltime blog.wanjie.info 出结果了

网上说windows下 也行,没试了

1
curl -w "@%~dp0curl-format.txt" -o NUL -s %*

3.1. 正常结果

响应正常时,0.6秒完成全过程。

 

3.2. 异常结果

异常时,20多秒完成全过程。其中耗时最大的是 time_appconnect这一段,即 SSL/SSH 等上层协议建立连接的时间,比如 connect/handshake 的时间。

后来多次容器内外,甚至本地电脑测试,结果相同。

4. 理论图解


找到了cloudflare关于一次访问各段花费时间描述说明,如下图


更多详情可以参考这里 https://blog.cloudflare.com/a-question-of-timing/

相关文章:

  1. LAMP 系统性能调优,第 1 部分: 理解 LAMP 架构
  2. 站点启用https
  3. docker-upgrade
  4. k8s multi cluster management with kubeconfig
标签: curl
最后更新:13 11 月, 2020

wanjie

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

This site uses Akismet to reduce spam. Learn how your comment data is processed.

归档
分类
  • network / 332篇
  • Uncategorized / 116篇
  • unix/linux / 122篇
  • 业界资讯 / 38篇
  • 公司杂事 / 11篇
  • 数码影像 / 12篇
  • 美剧 / 3篇
  • 美图共赏 / 21篇
  • 英语学习 / 3篇
标签聚合
iMac brew kernel Ubuntu 职责 Google 刷机 dreamhost d90 网站运营 deepseek 虚拟主机 ldap Linux unveiled today webhook postgres 邮件归档 泰国 Google Voice nexus gitlab Nginx 天翼live docker 网通 VPS dreamhost空间 squid k8s

COPYRIGHT © 2008-2025 wanjie.info. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang