为什么我的请求直接浪费了 3 秒钟?

2019-12-24 23:35:34 +08:00
 qinxg





如图 , 系统日志里面 发起的时间是 :2019-12-24T23:00:04.1447211+08:00
与 fiddler 里面的 ClientConnected 可以匹配
但是 ClientBeginRequest 缺延迟了 3 秒 与日志返回的 Use:3031.29 能匹配...

请问这 3 秒是怎么丢的呢? 如何优化... HTTP 默认连接数已调大过...

这个日志我抓过很多次 大概都是 3 秒左右的延迟...
最后没办法我在服务器开了 Fiddler...
2141 次点击
所在节点    问与答
16 条回复
jugelizi
2019-12-25 00:01:33 +08:00
ClientConnected- Exact time that the client browser made a TCP/IP connection to Fiddler.
ClientBeginRequest– Time at which this HTTP request began. May be much later than ClientConnected due to client connection reuse.
qinxg
2019-12-25 00:04:01 +08:00
@jugelizi 这个我看过了.谢谢你

我记了日志的.现在很明显 ClientConnected 就是我任务开始的时间.
我是想知道怎么把这 3s 给减掉..
3s 这个太长了
jugelizi
2019-12-25 00:10:29 +08:00
你网站打开需要 3s 钟?是不是你理解错了
qinxg
2019-12-25 00:17:25 +08:00
@jugelizi
我记录日志了的.
调用这个请求是 04 这个请求结束是 07 我日志输出的 没有理解错.. 而且同样的日志有好几个
对于这个请求发出到接受时间.确实只有 0.015s
qinxg
2019-12-25 00:19:40 +08:00
补充下.我说的 0.015 是 fiddler 里面说的 但是算上 ClientConnected 是 3s 和我日志是吻合的 而且 ClientConnected 的开始时间和我日志的 api 调用的启动时间也基本能吻合 就是上面图 TXT 的 Start 字段
gwy15
2019-12-25 00:54:46 +08:00
可能不是一个原因,我之前遇到类似的问题,后来发现是 DNS 服务器发生错误。你换个 DNS 服务器或者直接用裸 ip 看看还有没有这个延迟。
qinxg
2019-12-25 01:07:50 +08:00
@gwy15 我和被访问网站在阿里云同区 按道理不会 - -! 也谢谢你
这个错几率很小 大概几百次出现 1 次吧... 但是这个错误影响我后面的逻辑了 - -!
qinxg
2019-12-25 01:28:40 +08:00
其实我访问也不是很高频 大概 1 秒不超过 3 次... 不知道量上去会怎么样 诶..
sx90
2019-12-25 01:30:17 +08:00
听到有人敲门,你去开门,要多少时间呢?

跳过 Fiddler,用 api 直接测试好了
qinxg
2019-12-25 01:37:34 +08:00
@sx90

这个日志我抓过很多次 大概都是 3 秒左右的延迟...
最后没办法我在服务器开了 Fiddler...

我上面说过... 就是查出这种延迟问题.
不确认是平台问题还是我自己的问题. 于是我把 fiddler 打开了...
qinxg
2019-12-25 01:41:16 +08:00
@sx90
这个情况是偶发的. 特殊情况下才知道..
我也是 Fiddler 看才看到是这样的....

直接请求做多也只能看到是请求 0.6s
请求 3s...
sx90
2019-12-25 02:39:10 +08:00
1 楼已经回答

客户端连接重用问题

假如端口被 socket 使用过,并且利用 socket.close()来关闭连接,但此时端口还没有释放,要经过一个 TIME_WAIT 的过程之后才能使用
qinxg
2019-12-25 08:06:45 +08:00


今天早上看的日志... 出错的时间都是整点


@sx90 这个怎么避免呢?
qinxg
2019-12-25 09:03:21 +08:00
我现在已经可以明确了.就是每整点会出现一次
alcarl
2019-12-25 09:50:20 +08:00
是 http 的话,本机抓包看一下吧,比较直观
sx90
2019-12-25 11:11:38 +08:00
服务器是 win 的话

使用 netstat 或 TCPView 查看所有 TCP 連線

我暂时发不了网址,自行搜索吧,网络连接有他的规则在,TIME_WAIT 是保障机制

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/632018

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX