V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
alipei666
V2EX  ›  程序员

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

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

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

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

    反正都是 docker 部署的,导出个镜像不复杂吧。
    Iiang
        23
    Iiang  
       88 天前
    服务器内网调用一下看看
    kieoo
        24
    kieoo  
       88 天前
    这个 5s 有点熟悉, 之前也遇到过, 不过是在 k8s 上; 查过这篇文章, 说是内核 conntrack 模块的 bug, 可以看看 https://blog.kelu.org/tech/2019/11/02/kubernetes-dns-delay-5-seconds.html;
    alipei666
        25
    alipei666  
    OP
       85 天前
    有可能是这个问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4732 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 05:37 · PVG 13:37 · LAX 21:37 · JFK 00:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.