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

不懂就问,请教下一个能支持两万人同时在线访问不瘫痪的网站,而且后端服务器是 Windows Server + IIS,网站程序用 asp.net 写的,需要什么样的配置和带宽?附上目前的配置

  •  1
     
  •   hing · 2020-05-12 11:26:00 +08:00 · 3340 次点击
    这是一个创建于 1437 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用的是套路云,
    一个 性能保障型 slb.s3.small 规格的负载均衡实例:
    连接数:200000
    CPS:20000
    QPS:20000
    带宽:5 Mbps

    两台 4 vCPU 8 GiB ecs.hfc6.xlarge 规格的后端服务器:
    带宽:1 Mbps
    ESSD 云盘:60GiB (4800 IOPS)*2

    一个 rds.mssql.s2.xlarge 规格的 RDS 云数据库:
    CPU:2 核
    数据库内存:8192MB
    最大 IOPS:4000
    最大连接数:2000

    上面的配置会不会在哪方面存在瓶颈?
    第 1 条附言  ·  2020-05-12 12:12:35 +08:00
    具体是一个在线学习网站,课程视频用的是保利威视的
    24 条回复    2020-05-14 21:56:50 +08:00
    jsq2627
        1
    jsq2627  
       2020-05-12 11:54:51 +08:00   ❤️ 1
    两万人同时在线的新闻网站和两万人同时在线的实时交易所能是一样的配置吗?

    自己 benchmark 才靠谱
    RiESA
        2
    RiESA  
       2020-05-12 11:58:54 +08:00
    心中略有疑问,先插个眼,看看能不能学到什么
    goobai
        3
    goobai  
       2020-05-12 12:07:13 +08:00 via Android
    看大佬咋回答
    hing
        4
    hing  
    OP
       2020-05-12 12:12:23 +08:00
    @jsq2627 具体是一个在线学习网站,课程视频用的是保利威视的
    soli
        5
    soli  
       2020-05-12 13:07:42 +08:00   ❤️ 1
    带宽肯定不够。
    maypu
        6
    maypu  
       2020-05-12 13:54:18 +08:00 via Android   ❤️ 1
    带宽严重不足
    hing
        7
    hing  
    OP
       2020-05-12 15:00:12 +08:00
    @soli
    @maypu
    是做了负载均衡的,所以后端服务器只留 1Mbps 用于运维
    带宽 5Mbps 不够的话,至少要多大带宽啊?
    lekai63
        8
    lekai63  
       2020-05-12 15:10:18 +08:00   ❤️ 1
    @hing 2 万人同时在线看视频学习??
    如果直接堆带宽的话,视频学习,怎么也得每人 5Mbps 吧,不然岂不是卡成狗。那简单计算,2 万人就是 10 万 mbps,即 100Gbps :)
    --------------------
    所以你还是上 CDN 吧。
    zachlhb
        9
    zachlhb  
       2020-05-12 15:14:24 +08:00 via Android   ❤️ 1
    还要配置 iis 的程序池,否则支持不了这么多
    just1
        10
    just1  
       2020-05-12 15:14:27 +08:00 via Android   ❤️ 1
    既然是大厂,那就在云服务器的后台看一下资源使用呗,带宽、硬件占用有没有到 90%以上,哪个你看的图表感觉不够,就说明那个缺乏咯
    hing
        11
    hing  
    OP
       2020-05-12 16:05:16 +08:00
    @lekai63 课程视频走的是第三方啊
    dko
        12
    dko  
       2020-05-12 16:44:02 +08:00   ❤️ 1
    单台 4 vCPU 8 GiB ecs.hfc6.xlarge,一般来讲可以抗住 8000 并发,做个 LB 可能会稍微好一些
    纯静态会好一些,视频放 oss 。

    动态的话,很难抗住,数据库并发≠访问人数,除了前端优化,后端同时需要优化。

    总结:目前的配置比较凑合,最好 X2,一般都做 3 倍容量,你这个有困难,但并不是完全不可完成。
    yuzo555
        13
    yuzo555  
       2020-05-12 17:12:12 +08:00   ❤️ 1
    后端层面,一些热门的课程数据最好还是加一层缓存,不要每次都连数据库。

    配置的话,其实如果能做到前后端分离,前端页面静态化的话,上个 CDN 带宽压力会小太多。

    如果没办法前后端分离,那么这个配置还得提升,至少 8 vCPU 16GiB 的吧... 都能用 polyv 那么贵的视频云了,升级下服务器问题应该不大。
    yuzo555
        14
    yuzo555  
       2020-05-12 17:13:38 +08:00   ❤️ 1
    没法前后端分离用 CDN 的话,这个带宽也是个瓶颈,如果能接受预算不固定的后付费模式,可以考虑使用流量计费模式,能放纵一点带宽。
    dilu
        15
    dilu  
       2020-05-12 17:25:36 +08:00   ❤️ 1
    其实你这个问题很难回答

    例如有没有 CDN,没有你的带宽压力比较大

    又例如你的业务场景是什么,如果就是论坛大家看看帖子,跟商城大家买东西,实际还不一样

    我只能说,粗略估计 4 台 16 核 32 线程 64G 内存 企业级 SSD 千兆机房,可以让你短时间内不需要因为业务上升而扩容
    brendanliu
        16
    brendanliu  
       2020-05-12 17:26:34 +08:00   ❤️ 1
    2w 人同时在线,各类资源、数据的并发数可能会超过 6w,即使视频使用的是第三方的资源,其他资源 5M 带宽也肯定不够的。建议楼主使用带宽后付费资源,并且配套 CDN 加速,使用一段时间后,带宽峰值确定后,再转为预付费。
    leafleave
        17
    leafleave  
       2020-05-12 17:28:56 +08:00   ❤️ 1
    30M 可以试试,5M 太少了
    zhchyu999
        18
    zhchyu999  
       2020-05-12 17:36:06 +08:00   ❤️ 1
    看业务,是进来以后不动了,还是有心跳,都不一样,预估每个接口在 20000 同时在线时的最大 QPS,每个接口的平均占用带宽,单台机器能抗多少量,我看似乎没有加 redis 之类的缓存中间件,可以加一个试试,能抗量的
    cplemom
        19
    cplemom  
       2020-05-12 18:33:57 +08:00   ❤️ 1
    推荐各种静态资源都上 CDN 。并发数上来以后,要考虑的问题就多了
    1. 数据库连接问题,各种常用数据加缓存,比如用个 redis 啥的(可以考虑直接买个 redis 服务,直接部署服务器上还是会吃服务器资源),代码优化(这个踩坑会比较多)减少数据库连接
    2. 带宽问题,以前项目视频放 CDN,带宽最起码以 G 为单位,后来太费钱了,改成按时段调整(每天访问高峰还是可以看出来的)。
    3. 服务器问题,2 台一般扛不住的,可以考虑 4 台。具体还是要看你活跃用户,。
    4. IIS 配置,有个教程修改 IIS 10 万并发的,这些也要调一下。
    5. 前后端分离,如果你的 asp.net 项目,页面是 cshtml 或者 aspx 的,服务端组装页面也是一笔开销。
    cominghome
        20
    cominghome  
       2020-05-12 19:32:27 +08:00   ❤️ 1
    最近 V 站这种帖子越来越多了,十分无语。
    自己的业务,不去做压测和调优,跑来问就想得出峰值 QPS ?
    hing
        21
    hing  
    OP
       2020-05-12 20:39:29 +08:00
    @cominghome
    我是被赶着拉来做服务器部署运维这块的,
    压测有用 http_load 测过,但是应该用什么参数值来测都不好确定啊😔
    调优就更无语了,是购买的商用程序,提供商连给升级个加了数据字段的功能都出各种问题
    flynaj
        22
    flynaj  
       2020-05-12 22:33:06 +08:00 via Android
    20000 人一个一兆带宽也要 20000 兆,1000 兆的服务器起码要 20 台。
    zmz0630
        23
    zmz0630  
       2020-05-14 10:26:37 +08:00
    看了你的这两个主题帖 我感觉你好像是我们部门的人 哈哈哈哈
    hing
        24
    hing  
    OP
       2020-05-14 21:56:50 +08:00
    @zmz0630
    当然不是了,哈哈,我公司连个正经的开发都没有的,唯一的前端还是实习的,还会有不懂的来请教我这不入流的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3511 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 10:55 · PVG 18:55 · LAX 03:55 · JFK 06:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.