请教一个服务器部署问题

2021-07-02 20:46:29 +08:00
 simplove

一个音乐考试网站服务于某个区。 区有 60 所学校,每个学校 100 台电脑考试,同时最高的并发量是 60*100=6000,总人数好几万吧 轮流考试,每人考试时间大概是 15 分钟左右,就唱两首歌的时间。 全部用 web 登录,试听音乐,学生唱歌,上传,试听,唱歌,上传,然后是提交。 最后还有对接一个 AI 进行评分。 试听的歌曲有压缩,一首歌大概在 5M 左右,学生唱的歌一首歌大概 10M 左右。 目前开发那边用的是一台服务器,配置为 20 核,32G,600G SAS 硬盘 结果考试的时候不是登录不上,就是试听没反应,还有上传歌曲的时候没反应。 用户体验差得一逼。 每间学校是移动专线 300 上 /300 下,服务器机房用的是 1000M 移动专线,上下对等。 今天又说要用阿里云 OSS 来处理音乐的上传和下载问题,然后要部署 3 台服务器。

各位大佬有什么好的建议呢

3934 次点击
所在节点    程序员
29 条回复
Tianao
2021-07-02 20:57:51 +08:00
不知道楼主啥身份,不好给建议,这不就是 KTV 的一个子系统吗,感觉是代码写得不行,建议首先考虑从软件开发的角度解决,而不是 SRE 的角度。
villivateur
2021-07-02 20:58:40 +08:00
这种东西应该是短时间的瞬时峰值访问吧?总不可能天天考试。不如上云,考试之前疯狂开机器,考完了就退还。
fuse
2021-07-02 21:13:08 +08:00
oss cdn 就这?
simplove
2021-07-02 21:22:41 +08:00
@Tianao 甲方,代码是乙方写的,前端 VUE,后台 java spring boot 框架。mysql 数据库。。。软件开发嘛,就别提了,坑。不然也不会来这咨询了
simplove
2021-07-02 21:24:04 +08:00
@villivateur 基本上是一次性的固定费用,上云的话,费用不好搞呀。所以最好是不上云。但是开发说找人自己搭 OSS,我有点无语。
yin1999
2021-07-02 21:33:44 +08:00
这个场景还是使用 OSS 费用低啊,整一个流量包+存储包,这不比高性能服务器便宜。云厂商也会提供 OSS 的 SDK,通过后端预签名的方式,给前端提供预签名的 URL 就可以实现音频文件的上传和下载了
zzzzqqw
2021-07-02 21:44:39 +08:00
6000*10M *8bit = 480000M >> 1000M
6000 个人同时上传 /下载瞬时峰值带宽 48 万 M,一台服务器提供 1 千兆带宽。这不网络堵塞吗
Tianao
2021-07-02 22:08:47 +08:00
@zzzzqqw #7 你这是一个人 80 Mbps 的下行,怎么可能?
chenluo0429
2021-07-02 23:56:20 +08:00
把数据都进行切片,分段获取和上传,而不是一次性以文件的形式去处理,否则峰值肯定会把你的服务击穿的。
aqqwiyth
2021-07-03 00:52:20 +08:00
这个问题说白了是解决瞬时带宽的问题


1. 先解决下载的问题, 每个学校放一台前置机器,下载走前置机器,考试前全部同步准备好, 这样歌曲的下载就解决了.
2. 然后就是上传的问题, 假如都是同时上传 6000*10M=6G . 这么大的带宽会被当做黑客攻击了. 另外硬盘也写不进去 不是学校网络卡死就是服务器卡死. 所以这个解法还是得用问题 1 来解决. 离线同步+上传+离线 AI 分析
---------------------------------------------------------------------------------
考虑到运维跟人工成本. 60 个学校机器运维可能要疯掉. 另外学校的上行的带宽也不够.


如果 AI 是第三方接口实时出结果的话,估计也会面临跟你一样要考虑带宽的问题.
aqqwiyth
2021-07-03 00:54:15 +08:00
把瞬时的外网问题 置换到内网+离线
akira
2021-07-03 04:12:03 +08:00
你只要给压力给乙方就可以了。他们会去想办法的
eason1874
2021-07-03 04:12:25 +08:00
如果一年两三次,最优解就是上云。

按 10 万人次来算,试听平均每人请求两次 5M 歌曲,100000*5*2,近 1TB CDN 流量,日常价一百多,活动价不到一百。上传直传对象存储,流量免费,请求次数 0.01 元 /万次,存储差不多 0.01 元 /GB/月,放一个月花不了几块钱。

下载回本地,请求费几块钱,流量 100000*10*2,2TB 左右,直接公网下载就是 CDN 费用一百多*2 加上回源 0.15 元 /GB 也是一百多*2,总共四五百。还可以开同地域的大带宽竞价机器来下载,内网下载流量免费,就只要几块钱请求费和几十块机器费。

给你满打满算,一次考试的对象存储预算干到 1000,一年两次就 2000 。这点钱要是自己整,别说机器了,都不够买带宽的。不过,这样一来,你们能申请到的经费就少了,而且领导会认为是对象存储的云服务厂商牛逼,而不是你们工作做得好。

所以,要质量好,成本低,就上云。要成绩,有经费,就自己搞。当然,如果 PPT 做得好,低成本上云也可以包装成价值几万的解决方案。
xuanbg
2021-07-03 07:42:20 +08:00
我认为这不仅仅是带宽的问题,同时也可能是磁盘 IO 的问题,OSS+SDN 也未必就能行。每个学校的考试机器作为前置文件服务器会比较好吧。只要预先下载 /下发考试用的音乐,这样就没有并发的下载流量了。上传因为不可能同时发生,简单粗暴直接上传处理就行了。
a719031256
2021-07-03 09:23:30 +08:00
做一个排队系统不更好?非要把问题弄成峰值
LLaMA2
2021-07-03 09:48:20 +08:00
白瞎了这么好的机器,实际上上云,开突发性能突发带宽,套上 OSS 解决上传 ,套上 CDN 解决下发,做完考试机器就降低到能跑的水平就好了
simplove
2021-07-03 10:54:28 +08:00
@aqqwiyth 内网最高也是千兆呀,学校的交换机也是千兆的。离线的方式对于下载来说是可以,但是得弄成客户端的形式,不然网页只能是提前缓存。上传没办法离线
Tarkky
2021-07-03 11:21:53 +08:00
最简单暴力的就是上云,弹性 ec2,弹性带宽,完事退还。感觉从开发角度解决更麻烦。
shoaly
2021-07-03 11:37:18 +08:00
相当简单... 开发的兄弟 应该还没经验 , 不知道怎么拆分业务流程
lcy630409
2021-07-03 11:51:54 +08:00
我觉得应该不是并发问题
看描述“每人考试时间大概是 15 分钟左右,就唱两首歌的时间”,不可能同一时间全部唱完点上传吧?考试 肯定有前有后,建议楼主 还是让技术人员 看一下有问题的时候 服务器的状态,是 cpu 、网络满载了 还是硬盘写不过来,再具体解决

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

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

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

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

© 2021 V2EX