任意接口请求通过 ip 访问有较大概率 5 秒才会响应且几乎慢就是 5 秒, localhost 则几百毫秒内返回从不超时
java 服务,使用 springboot 内置 tomcat 运行 使用 docker 运行服务 dockes 配置未对容器进行 cpu 资源限制 内存也给了 2G
服务是部署在两台机器上 都有这个问题。
1.最开始猜测是 docker cpu 限制太严重所以后面把 cpu 限制的参数删除了问题还存在
2.docker 网络使用的是 host 模式
下面贴上 tcpdump 的抓包
19:00:22.174754 IP host-145-152-6-83.openstacklocal.48702 > host-145-152-6-83.openstacklocal.26107: Flags [S], seq 1281709290, win 43690, options [mss 65495,sackOK,TS val 2912860989 ecr 0,nop,wscale 7], length 0
19:00:22.174777 IP host-145-152-6-83.openstacklocal.26107 > host-145-152-6-83.openstacklocal.48702: Flags [S.], seq 2952690423, ack 1281709291, win 43690, options [mss 65495,sackOK,TS val 2912860989 ecr 2912860989,nop,wscale 7], length 0
19:00:22.174789 IP host-145-152-6-83.openstacklocal.48702 > host-145-152-6-83.openstacklocal.26107: Flags [.], ack 1, win 342, options [nop,nop,TS val 2912860989 ecr 2912860989], length 0
19:00:22.174846 IP host-145-152-6-83.openstacklocal.48702 > host-145-152-6-83.openstacklocal.26107: Flags [P.], seq 1:103, ack 1, win 342, options [nop,nop,TS val 2912860989 ecr 2912860989], length 102
19:00:22.174854 IP host-145-152-6-83.openstacklocal.26107 > host-145-152-6-83.openstacklocal.48702: Flags [.], ack 103, win 342, options [nop,nop,TS val 2912860989 ecr 2912860989], length 0
19:00:27.181953 IP host-145-152-6-83.openstacklocal.26107 > host-145-152-6-83.openstacklocal.48702: Flags [P.], seq 1:156, ack 103, win 342, options [nop,nop,TS val 2912865996 ecr 2912860989], length 155
19:00:27.181970 IP host-145-152-6-83.openstacklocal.48702 > host-145-152-6-83.openstacklocal.26107: Flags [.], ack 156, win 350, options [nop,nop,TS val 2912865996 ecr 2912865996], length 0
19:00:27.182133 IP host-145-152-6-83.openstacklocal.26107 > host-145-152-6-83.openstacklocal.48702: Flags [P.], seq 156:161, ack 103, win 342, options [nop,nop,TS val 2912865997 ecr 2912865996], length 5
19:00:27.182139 IP host-145-152-6-83.openstacklocal.48702 > host-145-152-6-83.openstacklocal.26107: Flags [.], ack 161, win 350, options [nop,nop,TS val 2912865997 ecr 2912865997], length 0
19:00:27.182257 IP host-145-152-6-83.openstacklocal.48702 > host-145-152-6-83.openstacklocal.26107: Flags [F.], seq 103, ack 161, win 350, options [nop,nop,TS val 2912865997 ecr 2912865997], length 0
19:00:27.182407 IP host-145-152-6-83.openstacklocal.26107 > host-145-152-6-83.openstacklocal.48702: Flags [F.], seq 161, ack 104, win 342, options [nop,nop,TS val 2912865997 ecr 2912865997], length 0
19:00:27.182416 IP host-145-152-6-83.openstacklocal.48702 > host-145-152-6-83.openstacklocal.26107: Flags [.], ack 162, win 350, options [nop,nop,TS val 2912865997 ecr 2912865997], length 0
可以看到有一段 5 秒的
我测试的接口是只返回当前系统的时间戳
因为 localhost 一直正常我且本地测试也正常我几乎不认为是服务本身的问题。
服务器本身 cpu 并不高 内存也还有富余
有人遇到了类似的问题吗?希望能指导下
25 条回复
alipei666
136 天前
求求各位帮帮忙 搞了几天了 由于特殊原因生产服务器开发不能连 只能通过现场的测试人员操作 问题排查起来更加困难
alipei666
136 天前
回答思路我又觉得有道理提供奶茶意思下
skallz
136 天前
可能是 dns 解析或防火墙?
alipei666
136 天前
@
skallz 通过 ip 访问貌似跟 dns 没关系了把 防火墙有可能但是那台机器还有别的服务 他们不超时
skallz
136 天前
@
alipei666 ip 访问会触发反向 dns 解析,我印象中还有其他情况也会,如果其他 ip 都没问题就你的 ip 有问题,可以搜下相应情况排查
seers
136 天前
trace 一下,看看路由,然后 tcping 看看会不会丢包
seers
136 天前
最好能鲨鱼抓包看看慢在哪里,服务器 tcpdump 一并能看最好
totoro52
136 天前
同楼上,多 trace 一下就知道
pagxir
136 天前
基本上就是域名解释的问题呀。你试试修改一下 docker 里面的 hosts 文件跟访问这个服务的机器也改下 hosts ,然后用添加到 hosts 的域名访问服务试试
alipei666
136 天前
@
seers 鲨鱼抓包是在客户端抓吗? tcpdump 有导出一个文件我通过鲨鱼抓包看了 只能确定是卡了 5 秒 具体不知道原因
alipei666
136 天前
@
pagxir 我是通过 ip 访问的 生产也是通过 ip ,你意思是两边都加一个 host 文件映射 直接通过域名访问吗?
alipei666
136 天前
@
seers trace 过了 正常 我当时都怀疑跟端口有关了
joyhub2140
136 天前
这个我遇到过,公司购买的产品用 https://ip 访问的情况下,浏览器打开网站会有一定的延时,夸张的时候 10 几秒才打得开。
解决办法是直接访问 http 协议的端口,直接用 http://ip 访问就可以啦。
dallaslu
136 天前
诡异问题,用替换法。
* 模拟生产环境的 docker 配置,排除生产环境系统和 docker 配置问题
* 停掉服务,使用 nc 监听服务端口,排除一下应用的响应速度问题
sagaxu
136 天前
5 秒?第一反应就是反向 DNS 解析,正好是 5 秒
alipei666
136 天前
@
dallaslu 感谢我明天用 nc 试试,docker 配置很简单 跟开发时一致的
alipei666
136 天前
@
joyhub2140 我测试的时候就是直接用 http 协议测试的 ,你们最后没管了吗
joyhub2140
136 天前
@
alipei666 没管了,第一次打开慢是慢了点,打开后就能正常使用了,就是普通的后台管理系统,用的 Windows 服务器版。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/1063590
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.