请教一个服务器部署问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
simplove
V2EX    程序员

请教一个服务器部署问题

  •  
  •   simplove 2021-07-02 20:46:29 +08:00 4384 次点击
    这是一个创建于 1565 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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


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


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

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


    既然是学校,为什么要从省成本的角度去考虑问题? 10G 光口*10 不香是吗?限制的时候开放域内公共云呗。。
    flyingfz
        24
    flyingfz  
       2021-07-03 15:38:26 +08:00
    @simplove 自己搭 OSS, 倒不是不行。 参考下这个:http://docs.minio.org.cn/docs
    flyingfz
        25
    flyingfz  
       2021-07-03 15:44:44 +08:00
    考虑 每个学校 作为一个节点 , 所有本校学生的数据, 都从本校的节点获取、上传, 内网里,带宽应该是充足的。
    然后, 考试完毕之后, 各个学校自己调用 AI 进行评分 , 这里 可能要进行调度, 否则,AI 服务那边可能会有压力。

    但这样的成本相对来说 , 肯定是要高一些。
    mazyi
        26
    mazyi  
    PRO
       2021-07-03 17:27:21 +08:00 via iPhone
    没必要自己搭,直接用公网的就行,除非政策不允许在考虑自己搭
    simplove
        27
    simplove  
    OP
       2021-07-03 17:41:07 +08:00
    @flyingfz 你这个方案不是不行,只是要每间学校再增加设备,可以是一台普通电脑,这样运维的成本就高了。
    simplove
        28
    simplove  
    OP
       2021-07-03 17:42:00 +08:00
    @RandyColin 学校的带宽都是找运营商买的,10G 光口这个有点不现实呀,再说了人越多,磁盘 I/O 也要考虑
    RyougiShiki
        29
    RyougiShiki  
       2021-07-03 19:45:30 +08:00
    瓶颈不是网络带宽就是机械磁盘 IO,上传到云对象存储解决。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2499 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 15:42 PVG 23:42 LAX 08:42 JFK 11:42
    Do have faith in what you're doing.
    ubao 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