V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qq1147
V2EX  ›  问与答

请问大家,如何确定业务是否受到网络波动的影响?

  •  
  •   qq1147 · 11 天前 · 477 次点击

    我司的业务涉及上下游请求转发(下游请求到我们平台,我们平台再请求上游,然后将上游响应返回给下游),该业务对延迟要求较高( 300ms 以内需要完成全流程)我想请问的是:

    当出现超过延迟要求的情况时,在排除了平台故障导致的异常情况后,我如何确认延迟主要发生在下游向我们发起调用的时间,还是我们向上游发起调用的这个时间段内呢?

    通俗来讲就是怎么能够判断到底是不是网络波动或者网络抖动带来的延迟?以及具体定位到是哪一段网络波动带来的影响

    5 条回复    2025-02-12 10:58:20 +08:00
    onetown
        1
    onetown  
       11 天前
    把每段的延时数据监控起来, 出问题, 看当时的时间点的丢包、延时数据(如果方便就计算一下 jitter , 延时抖动的值), 就知道是哪一段有问题了啊。
    xjzshttps
        2
    xjzshttps  
       11 天前
    这个不就是全链路跟踪的活?
    qq1147
        3
    qq1147  
    OP
       10 天前
    @onetown 有两个点不太明白:
    1. 下游用户调用我们的延时数据我们如何获取到呢,也就是如何排除丢包延时等情况是在下游用户到我们平台这个段发生的
    2. 丢包和延时指标怎么记录是最准确的,我们的方案是在服务器上 traceroute 出每一跳的地址,然后 Ping 这些地址的方式记录的,往往记录出来都没有大幅波动,但实际业务还是出现了延迟
    onetown
        4
    onetown  
       10 天前
    @qq1147 #3
    1. 如果无法做客户对你们的请求的延时监控, 那么就做一下减法, 比如 A-Z, 你可以记录 B-Z 的全部延时, 如果平均延时在 300, B-Z 是 200 , 那么 A-B 就在 100 左右了

    2. 不用 traceroute 每一跳的节点, 这个涉及到控制面和转发面 SLA 的指标是有可能不一样的,所以这个数据只能作为参考, 实际上, 你可以直接对最终的目标地址做监控,而且要结合 ICMP/UDP 和具体业务协议, 比如 tcping, curl 等等, 如果中间 B-Z 有你们自己的路由节点, 你可以每一个节点都监控, 比如你面向客户接入的 POP 在北京, 目标在洛杉矶, 如果从上海出海, 就可以记录, 北京-上海, 上海-洛杉矶, 洛杉矶-最终目标, 因为洛杉矶出 POP 了就去 internet 了, 也不是你们可控的
    qq1147
        5
    qq1147  
    OP
       10 天前
    @onetown 感谢!

    针对下游用户无法监控的情况下,我们也想了下,除了做减法,还可以考虑要求下游用户显式传时间戳的,协助排查和监控;

    网络延迟的问题我们再完善一下监控机制,网络知识储备薄弱,还需继续学习....
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   918 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 22:51 · PVG 06:51 · LAX 14:51 · JFK 17:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.