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

2020-05-12 11:26:00 +08:00
 hing
用的是套路云,
一个 性能保障型 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

上面的配置会不会在哪方面存在瓶颈?
3645 次点击
所在节点    问与答
24 条回复
jsq2627
2020-05-12 11:54:51 +08:00
两万人同时在线的新闻网站和两万人同时在线的实时交易所能是一样的配置吗?

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

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

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

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

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

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

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

我只能说,粗略估计 4 台 16 核 32 线程 64G 内存 企业级 SSD 千兆机房,可以让你短时间内不需要因为业务上升而扩容
brendanliu
2020-05-12 17:26:34 +08:00
2w 人同时在线,各类资源、数据的并发数可能会超过 6w,即使视频使用的是第三方的资源,其他资源 5M 带宽也肯定不够的。建议楼主使用带宽后付费资源,并且配套 CDN 加速,使用一段时间后,带宽峰值确定后,再转为预付费。
leafleave
2020-05-12 17:28:56 +08:00
30M 可以试试,5M 太少了
zhchyu999
2020-05-12 17:36:06 +08:00
看业务,是进来以后不动了,还是有心跳,都不一样,预估每个接口在 20000 同时在线时的最大 QPS,每个接口的平均占用带宽,单台机器能抗多少量,我看似乎没有加 redis 之类的缓存中间件,可以加一个试试,能抗量的
cplemom
2020-05-12 18:33:57 +08:00
推荐各种静态资源都上 CDN 。并发数上来以后,要考虑的问题就多了
1. 数据库连接问题,各种常用数据加缓存,比如用个 redis 啥的(可以考虑直接买个 redis 服务,直接部署服务器上还是会吃服务器资源),代码优化(这个踩坑会比较多)减少数据库连接
2. 带宽问题,以前项目视频放 CDN,带宽最起码以 G 为单位,后来太费钱了,改成按时段调整(每天访问高峰还是可以看出来的)。
3. 服务器问题,2 台一般扛不住的,可以考虑 4 台。具体还是要看你活跃用户,。
4. IIS 配置,有个教程修改 IIS 10 万并发的,这些也要调一下。
5. 前后端分离,如果你的 asp.net 项目,页面是 cshtml 或者 aspx 的,服务端组装页面也是一笔开销。
cominghome
2020-05-12 19:32:27 +08:00
最近 V 站这种帖子越来越多了,十分无语。
自己的业务,不去做压测和调优,跑来问就想得出峰值 QPS ?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/670848

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX