• 请不要在回答技术问题时复制粘贴 AI 生成的内容
aliei666
V2EX  ›  程序员

任意接口请求通过 ip 访问有较大概率 5 秒才会响应且几乎慢就是 5 秒, localhost 则几百毫秒内返回从不超时

  •  
  •   aliei666 · Aug 8, 2024 · 3410 views
    This topic created in 819 days ago, the information mentioned may be changed or developed.
    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 并不高 内存也还有富余
    有人遇到了类似的问题吗?希望能指导下
    Supplement 1  ·  Aug 9, 2024
    很多人说是 cnd 的问题,可是我是通过 ip 直接在本机访问的 ,直接 curl ip 还走 cnd 吗?
    25 replies  •  2024-08-12 09:19:20 +08:00
    aliei666
    aliei666
    OP
    Aug 8, 2024
    1
    求求各位帮帮忙 搞了几天了 由于特殊原因生产服务器开发不能连 只能通过现场的测试人员操作 问题排查起来更加困难
    aliei666
    aliei666
    OP
    Aug 8, 2024
    2
    回答思路我又觉得有道理提供奶茶意思下
    skallz
    skallz
    Aug 8, 2024
    3
    可能是 dns 解析或防火墙?
    aliei666
    aliei666
    OP
    Aug 8, 2024
    4
    @skallz 通过 ip 访问貌似跟 dns 没关系了把 防火墙有可能但是那台机器还有别的服务 他们不超时
    skallz
    skallz
    Aug 8, 2024
    5
    @alipei666 ip 访问会触发反向 dns 解析,我印象中还有其他情况也会,如果其他 ip 都没问题就你的 ip 有问题,可以搜下相应情况排查
    seers
    seers
    Aug 8, 2024 via Android
    6
    trace 一下,看看路由,然后 tcping 看看会不会丢包
    seers
    seers
    Aug 8, 2024 via Android
    7
    最好能鲨鱼抓包看看慢在哪里,服务器 tcpdump 一并能看最好
    MIUIOS
    MIUIOS
    Aug 8, 2024
    8
    同楼上,多 trace 一下就知道
    pagxir
    pagxir
    Aug 8, 2024 via Android
    9
    基本上就是域名解释的问题呀。你试试修改一下 docker 里面的 hosts 文件跟访问这个服务的机器也改下 hosts ,然后用添加到 hosts 的域名访问服务试试
    aliei666
    aliei666
    OP
    Aug 8, 2024
    10
    @seers 鲨鱼抓包是在客户端抓吗? tcpdump 有导出一个文件我通过鲨鱼抓包看了 只能确定是卡了 5 秒 具体不知道原因
    aliei666
    aliei666
    OP
    Aug 8, 2024
    11
    @pagxir 我是通过 ip 访问的 生产也是通过 ip ,你意思是两边都加一个 host 文件映射 直接通过域名访问吗?
    aliei666
    aliei666
    OP
    Aug 8, 2024
    12
    @seers trace 过了 正常 我当时都怀疑跟端口有关了
    nxforce
    nxforce
    Aug 8, 2024
    13
    这个我遇到过,公司购买的产品用 https://ip 访问的情况下,浏览器打开网站会有一定的延时,夸张的时候 10 几秒才打得开。

    解决办法是直接访问 http 协议的端口,直接用 http://ip 访问就可以啦。
    dallaslu
    dallaslu
    Aug 8, 2024
    14
    诡异问题,用替换法。

    * 模拟生产环境的 docker 配置,排除生产环境系统和 docker 配置问题
    * 停掉服务,使用 nc 监听服务端口,排除一下应用的响应速度问题
    sagaxu
    sagaxu
    Aug 8, 2024
    15
    5 秒?第一反应就是反向 DNS 解析,正好是 5 秒
    aliei666
    aliei666
    OP
    Aug 8, 2024
    16
    @dallaslu 感谢我明天用 nc 试试,docker 配置很简单 跟开发时一致的
    aliei666
    aliei666
    OP
    Aug 8, 2024
    17
    @sagaxu 我明天试试
    aliei666
    aliei666
    OP
    Aug 8, 2024
    18
    @joyhub2140 我测试的时候就是直接用 http 协议测试的 ,你们最后没管了吗
    aliei666
    aliei666
    OP
    Aug 8, 2024
    19
    @joyhub2140 请问你们的系统是红旗 liunx 吗?
    nxforce
    nxforce
    Aug 8, 2024
    20
    @alipei666 没管了,第一次打开慢是慢了点,打开后就能正常使用了,就是普通的后台管理系统,用的 Windows 服务器版。
    aliei666
    aliei666
    OP
    Aug 8, 2024
    21
    好喔 感谢告知
    nxforce
    nxforce
    Aug 8, 2024
    22
    @alipei666 建议用 Rocky Linux 部署一套测试版看看呗。

    反正都是 docker 部署的,导出个镜像不复杂吧。
    Iiang
    Iiang
    Aug 8, 2024
    23
    服务器内网调用一下看看
    kieoo
    kieoo
    Aug 8, 2024
    24
    这个 5s 有点熟悉, 之前也遇到过, 不过是在 k8s 上; 查过这篇文章, 说是内核 conntrack 模块的 bug, 可以看看 https://blog.kelu.org/tech/2019/11/02/kubernetes-dns-delay-5-seconds.html;
    aliei666
    aliei666
    OP
    Aug 12, 2024
    25
    有可能是这个问题
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3604 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 96ms · UTC 00:51 · PVG 08:51 · LAX 16:51 · JFK 19:51
    ♥ Do have faith in what you're doing.