有多个客户反馈网站操作很卡,后台看接口 Nginx 响应时间 99%请求都在 2s 以内,静态资源用的是 CDN,应该从哪里排查,或者怎么收集哪个请求慢?他们说的是操作很卡,不是网页打开慢,应该是 API 的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
drymonfidelia
V2EX    程序员

有多个客户反馈网站操作很卡,后台看接口 Nginx 响应时间 99%请求都在 2s 以内,静态资源用的是 CDN,应该从哪里排查,或者怎么收集哪个请求慢?他们说的是操作很卡,不是网页打开慢,应该是 API 的问题

  •  
  •   drymonfidelia 2024-09-03 11:25:47 +08:00 3382 次点击
    这是一个创建于 408 天前的主题,其中的信息可能已经有所发展或是发生改变。
    20 条回复    2024-09-04 14:04:39 +08:00
    auhah
        1
    auhah  
       2024-09-03 11:35:36 +08:00
    不是。。。一个请求 2s 已经很卡了吧?

    自己试用一下系统具体问题具体分析呗
    D0n9
        2
    D0n9  
       2024-09-03 11:51:02 +08:00
    首先,客户可能没有能力区分操作很卡和网页打开慢的区别
    其次,后端响应 2s 是非常慢了,建议控制在 300ms 以内,可能和 nginx 没关系,是后端代码烂、慢查询等
    最后,静态资源虽然在 CDN ,看似请求不会慢,但如果前端代码一样很烂,也会表现出来卡、慢

    收集可以看看 sentry ,skywalking
    twofox
        3
    twofox  
       2024-09-03 12:00:20 +08:00
    你自己都不清楚为什么卡呀。。。

    所以到底是网络太慢了/资源太大了导致的打开缓慢

    还是数据请求太慢导致的卡

    还是网页自身不合理,DOM 消耗的资源太多导致的卡

    我遇到过一个离谱的就是打开后网页一直请求数据,一个请求达到一两个 G 的数据量。整个网页都卡死的
    xuanbg
        4
    xuanbg  
       2024-09-03 12:16:09 +08:00
    我还以为 OP 说的是 2ms ,仔细一看 TM 是 2s 。。。这个响应速度也太离谱了吧。OP 居然认为正常?
    songray
        5
    songray  
       2024-09-03 12:51:14 +08:00
    2s ,你这个网站已经几乎是不可用的状态了。首次进入触发瀑布请求,直接等个七八秒是吧。
    至于排查方式:前端用 sentry 做个埋点,对比一下请求时间和返回时间。
    csys
        6
    csys  
       2024-09-03 13:19:58 +08:00
    99%延迟<2s ,假设每个用户到网站上只做一个操作
    那这就意味着每 100 个用户里就有一个倒霉蛋体验到最少 2s 的卡顿

    你这不是都已经定位到问题了吗,为什么不认呢
    IvanLi127
        7
    IvanLi127  
       2024-09-03 13:31:32 +08:00
    按这描述出得换人重写了...一般不能这么拉

    哪个请求的响应慢直接在线上的 nginx 里打印下响应时间呗?等一段时间看看不就知道谁慢了。
    shiny
        8
    shiny  
       2024-09-03 13:37:58 +08:00
    如果客户可以配合,浏览器可以录制回放,观测性能;不能配合,装个 Clarity ,看用户的操作回放
    Akikiki
        9
    Akikiki  
       2024-09-03 14:23:00 +08:00
    一个两秒,前端并发请求几个嘞。一个页面加载完成需要请求多少个接口,累加起来时间也不短了
    guanzhangzhang
        10
    guanzhangzhang  
       2024-09-03 14:25:09 +08:00
    F12 看下调用时间
    opengps
        11
    opengps  
       2024-09-03 14:26:05 +08:00
    注意角色:(幸存者偏差)
    [你] 看 nginx 里的日志,起码这些访问能到达。
    [用户] 说很卡,有可能根本没访问到你服务器,不产生 nginx
    lambdaq
        12
    lambdaq  
       2024-09-03 14:28:03 +08:00
    页面挂一个日志采集。
    Daybyedream
        13
    Daybyedream  
       2024-09-03 14:30:02 +08:00
    让他们 F12 观察下= =
    yinmin
        14
    yinmin  
       2024-09-03 14:32:12 +08:00
    别用免费的第三方 cdn ,不靠谱。如果用了免费 cdn ,先把资源转到自己网站上试试
    ala2008
        15
    ala2008  
       2024-09-03 14:35:46 +08:00
    远程一下( doge
    dishuibaby
        16
    dishuibaby  
       2024-09-03 15:01:33 +08:00
    首先看一下 nginx 日志的 这两个时间("request_time 0.020 ""uptime 0.020"),排除一下是网络延迟,还是后端响应慢。如果是后端响应慢,那就想办法去优化后端代码。
    如果不是,就想办法联系客户排查吧。还有你的前段资源文件的大小,理论上只要不是过于离谱,第二次也就不会很慢了。
    salmon5
        17
    salmon5  
       2024-09-03 15:47:48 +08:00
    让客户换个快一些的网站,问题解决
    tangzui
        18
    tangzui  
       2024-09-03 15:50:25 +08:00
    有没有可能是 js 写的卡,前段时间用京东云的控制台,网站卡的跟外包做的一样
    Nosub
        19
    Nosub  
       2024-09-04 08:41:30 +08:00
    提供几个排除思路:

    1.查看后端接口查询的速度,是 SQL 查询的速度,是否有慢查询;
    2.查看 API 接口返回的文件大小,从服务器到浏览器需要传输的内容越少,速度自然也越快;
    3.是否开启了 GZIP 或是 Brotli 压缩,优化第 2 点;

    无非就是三个慢,服务器慢,传输慢,客户端慢。

    客户端慢首先排除,Nginx 慢也可以排除;

    所以剩下的主要就是 1 ,2 ;

    另外 CDN 加速了静态资源的下载,但是会拖慢 API 接口,不过影响比较小,可以忽略;
    anjing01
        20
    anjing01  
       2024-09-04 14:04:39 +08:00
    NGINX 日志通过 Grafana 打印出来:
    1.查询状态码是 200 且超过 1s 以上接口,程序员优化这些接口;
    2.查询状态码是 499 的接口(客户主动断开),看看是否异常
    3.查询其他异常状态码 40x/50x ,进行分析
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3991 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 05:18 PVG 13:18 LAX 22:18 JFK 01:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86