我用 python 发送一个 https 请求,收到响应居然花了接近 1s ,显然有点不能接受,有什么好的解决方案吗,不论用多大的带宽速度也都在 1s 左右
2 makdon 2022-01-16 11:15:15 +08:00 从哪里请求哪里的,https 握手就化不少时间了,如果请求国外的,1s 也确实差不多了 |
![]() | 3 ClericPy 2022-01-16 11:16:49 +08:00 你只给个结果不给线索, 只能胡猜了... 1. 复用连接 2. 禁用 ssl 3. 开高并发, TCPConnector limit 开大点 |
4 wanliyi OP @makdon 请求 alipay.com ,返回网页 html |
![]() |   8 pengtdyd 2022-01-16 11:55:36 +08:00 换 C |
10 zwy100e72 2022-01-16 15:13:24 +08:00 可以从几个方向排查 1. DNS: 楼主这 1s 时间中有包含 DNS 查询时间吗?如果有的话,通过 dig 命令确认 DNS 响应时间是不是过大,如果 DNS 延迟较高,可通过更换其他 DNS 或者本地 DNS 缓存的方式来降低 DNS 的影响 2. 连接时的开销:请求 alipay.com 时会涉及到 TCP 连接、301 跳转、TCP 重连、TLS 协商等流程,可通过抓包分析是否这个阶段开销过高,通过优化连接时参数来降低影响;也可以通过连接复用降低影响 3. 楼主的目标:楼主需要明确需求,是“单次连接时长小于 N ms”,还是 “多次连接,p50 / p90 / p99 延迟指标小于 N ms”。 4. 程序本身的开销:如果连接时 CPU 占用过高,可以用相关 profiler 工具分析热点,尝试通过更换效率更高的框架来降低开销 最后,当你在讨论 “1s” 这个指标时,有可能不是带宽瓶颈。如果带宽不是瓶颈,那么再增加带宽也是无法加速连接的。 |
11 deplivesb 2022-01-16 15:17:46 +08:00  |
15 wanliyi OP @zwy100e72 单次请求 waitting(TTFB)时间能达到 800ms ,请问这个阶段时间是无法优化的吗 |
![]() | 16 documentzhangx66 2022-01-17 00:22:42 +08:00 deplivesb 这位老哥给了你一条很好的思路。 你可以在每一处关键位置,加上时间戳,然后去百度开一台按分钟计费的云主机,接着对比一下自己 PC 与云主机的每个时间戳。 按分钟计费的云主机,我跑一次这种简单测试,就几毛钱成本... |
![]() | 17 aladdinding 2022-01-17 09:09:38 +08:00 curl -v 先看看 curl 的时间 |
![]() | 18 1daydayde 2022-01-17 19:11:23 +08:00 via iPhone 在 sailfishos 上开发 app 遇到过,在 dns 解析花了很长时间 |