docker 如何支持高并发 10W+连接? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
onesuren
V2EX    Docker

docker 如何支持高并发 10W+连接?

  •  
  •   onesuren 2024-08-26 11:26:16 +08:00 2316 次点击
    这是一个创建于 472 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请教有这方面经验的朋友

    • 1.是在宿主机需要设定还是直接在 docker 容器内设定,怎么设置?
    • 2.如果是 docker 容器里面设定如何在 dockerfile 里面设定好的?
    13 条回复    2024-08-27 16:23:02 +08:00
    yinmin
        1
    yinmin  
       2024-08-26 13:23:37 +08:00 via iPhone
    首先你要搞定程序在 linux 裸机上能支持高并发 10W+,然后迁移到 docker 容器,网络模式选 host 即可
    yinmin
        2
    yinmin  
       2024-08-26 13:27:03 +08:00 via iPhone
    如果有高负载的写文件操作(如日志等),也需要 volume 到宿主机上
    csys
        3
    csys  
       2024-08-26 13:45:16 +08:00
    什么细节都没有,说的好像某个地方存在着某个神奇“开关”,一打开就可以解决问题了一样
    盲猜想问的是 ulimit -u unlimited
    julyclyde
        4
    julyclyde  
       2024-08-26 13:49:32 +08:00
    这事跟 docker 有啥关系?
    julyclyde
        5
    julyclyde  
       2024-08-26 13:49:43 +08:00
    @csys ulimit 仅在 shell 里生效
    opengps
        6
    opengps  
       2024-08-26 13:52:37 +08:00
    docker 没经验,但我看了这题目想问下哪里表现出不支持了?
    standchan
        7
    standchan  
       2024-08-26 14:01:16 +08:00
    这个跟 docker 有什么关系?没搞懂
    ala2008
        8
    ala2008  
       2024-08-26 14:32:02 +08:00
    nginx 支持 10w+吗,docker 部署 nginx ?
    onesuren
        9
    onesuren  
    OP
       2024-08-27 14:36:26 +08:00
    @yinmin
    @julyclyde
    @standchan 感谢,综合看也就是需要在宿主机把这个问题解决,我研究研究


    @csys 我感觉是这样的 等我先把宿主机搞定


    @opengps 在环境下 测试并发在 2000 就会存在拒绝,应该是宿主机的事情


    @ala2008 我研究研究 主要是测试 Waf Proxy 性能
    opengps
        10
    opengps  
       2024-08-27 15:30:29 +08:00
    @onesuren 这么规整的数字,估计是程序对连接池里设置了上限,如果单纯考虑 socket 服务端,不考虑其他资源是否跟得上,这里是没有上限的,甚至我在生产环境也用到过几万连接,只是实测有些其他问题,所以后来在内部规定单机负载不予许超过 2 万
    onesuren
        11
    onesuren  
    OP
       2024-08-27 15:42:11 +08:00
    @opengps 感谢,等我找个合适的机器再测测
    julyclyde
        12
    julyclyde  
       2024-08-27 15:55:59 +08:00
    @onesuren 2000 的时候是 too many open files 故障吗?
    我也感觉 @opengps 的想法是对的
    onesuren
        13
    onesuren  
    OP
       2024-08-27 16:23:02 +08:00
    @julyclyde
    背景是:开发机( win10 ), waf 和 web 站点分别都是在 docker 里面不同实例。

    我用 go-stress-testing-win -c 2000 -n 1 -u http://localhost
    有以下两种提示:
    Get "http://localhost": read tcp [::1]:59763->[::1]:80: wsarecv: An existing connection was forcibly closed by the remote host.
    Get "http://localhost": EOF
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3274 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 04:58 PVG 12:58 LAX 20:58 JFK 23:58
    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