为什么 nginx 反向代理,并发性能很差? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
newyoung
V2EX    NGINX

为什么 nginx 反向代理,并发性能很差?

  •  
  •   newyoung 2023-08-27 22:39:48 +08:00 4915 次点击
    这是一个创建于 850 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前端服务器 和 源站服务器的硬件配置如下,系统是 centos7:

    CPU:E5-2696V4*2(88 线程) 内存:64G DDR4 硬盘:500G SSD (读写 450M/s 左右)

    前端和后端服务器都用的 nginx ,他俩单独测试并发都没问题。前端反向代理到后端后,正常连接总耗时 200ms ,但并发一旦超过 20 后,就至少有 1~2 个连接耗时超过 1.5 秒,如果加大并发,这种耗时较长的连接数量比例就越高,并发小于 20 后就一切正常。

    前端服务器和源站服务器之间的网络质量是非常好的,而且基本可以确定不是源站的问题,因为接入 CDN 服务商,用单个 CDN 节点回源进行测试时,并发很高都不会出现耗时变长的情况。

    我是从 nginx 配置 和 linux 内核参数 来进行优化,做了很多尝试,都没有效果,有遇到类似问题的朋友吗?可否指点一下?

    15 条回复    2023-11-15 17:35:24 +08:00
    Rainwater
        1
    Rainwater  
       2023-08-27 22:43:23 +08:00
    nginx 设置一下日志打印一下后端服务器处理请求到底耗时多久,瞎猜没啥用
    hefish
        2
    hefish  
       2023-08-27 23:36:05 +08:00
    后端总耗时能到 200ms 啊,这是个啥样的后端。。。。
    zhuisui
        3
    zhuisui  
       2023-08-27 23:40:48 +08:00
    怀疑是哪个因素的问题,就把哪个因素变成变量,控制变量法
    看你的描述,没看出来你有将 nginx 作为变量,进行单纯的加入和去掉 nginx 的并发测试,你只单独对前端和后端分别进行了并发测试,并在引入更多变量且瞎猜的路上越走越远
    newyoung
        4
    newyoung  
    OP
       2023-08-27 23:41:21 +08:00
    @epicSoldier 源站耗时一直是低的
    newyoung
        5
    newyoung  
    OP
       2023-08-27 23:42:21 +08:00
    @hefish 200ms 是我本地访问整个反向代理流程的总耗时,不是后端耗时。
    newyoung
        6
    newyoung  
    OP
       2023-08-27 23:46:52 +08:00
    @zhuisui 我是把前端 nginx 有可能影响到并发性能的配置项挨着修改做了测试,然后又把可能影响到并发性能的内核设置挨个做了测试,都没有用。

    整个找问题的流程没有在帖子里细说,主要目的是想看看有没有人遇到此问题且对此有研究成果,这样更高效一点。
    owen800q
        7
    owen800q  
       2023-08-28 00:09:11 +08:00 via iPhone
    服务是怎样的? 只是单纯的访问数据库吗,确定没有其他下游的 api 阻塞吗
    fpk5
        8
    fpk5  
       2023-08-28 01:20:25 +08:00 via iPhone
    打日志,瞎试是试不出来的
    jorneyr
        9
    jorneyr  
       2023-08-28 07:40:47 +08:00
    前端不通过 Nginx ,直接访问服务器端进行压测试试。
    liuhailiang
        10
    liuhailiang  
       2023-08-28 09:03:09 +08:00
    压测过程中关注下系统资源状态,常规的 cpu 、io 、链接数、先寻找瓶颈在哪里,在根据资源类型寻找参数配置调优。盲猜是前端的 nginx 机器链接数问题,尝试看看机器的最大 tcp 链接数、nginx 开启长链接、链接复用等;
    waringid
        11
    waringid  
       2023-08-28 09:58:57 +08:00
    还是要看日志的反馈。重点检查连接数和端口的配置情况。
    layxy
        12
    layxy  
       2023-08-28 10:04:39 +08:00
    nginx 日志打印下后端耗时,nginx 和后端是否为长连接
    kinXdle
        13
    kinXdle  
       2023-08-28 11:26:52 +08:00
    这个帖子我好像在 hostloc 看到过?
    newyoung
        14
    newyoung  
    OP
       2023-08-28 11:55:01 +08:00
    问题已找到,感谢各位,就是前后端的长连接没有建立成功
    liuyinltemp
        15
    liuyinltemp  
       2023-11-15 17:35:24 +08:00
    @newyoung 大佬,长链接怎么解决的呀?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1126 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 17:55 PVG 01:55 LAX 09:55 JFK 12:55
    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