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

公司生产环境应该如何选购服务器?

  •  
  •   zhonj · 2023-04-21 21:55:03 +08:00 · 1496 次点击
    这是一个创建于 580 天前的主题,其中的信息可能已经有所发展或是发生改变。

    当前我们公司的的业务面向政府的公益项目,应用程序不是很复杂,后端历史遗留使用的 springboot ,被我拆成无状态的服务了。

    我们的业务挺简单的,现在我们的部署方式为腾讯云自建的 k8s ,3 台 2c 4g master 节点,2 台 8c 16G work 节点 数据库腾讯云 2c 4g redis 2g 。 目前平台没啥用户,基本就是纯部署给领导看的。

    现在公司活动五一后即将开始,预估一天上百万用户,我们将 2c4g 数据库换成腾讯云的 tdsql-c 32 核数据库,其他硬件不变,当前压力测试,单登录接口只要 1800 的 qps ,业务高频率接口一起跑不到 3000 的 qps ,部署了 4 个实例,两台服务器 cpu 百分之 70 左右,内存百分之 60 多,接口响应到了 1s 来了,压测前端程序打开就开始转圈圈。我该如何扩展服务器,和数据库啊?

    目前我的方案: 1.优化程序增加,把历史遗留的程序多多做缓存。 2.腾讯云 2 台负载均衡。域名解析指向这两台 3.增加 N 台 worker 节点,多部署几个实例 预计 4-6 台

    目前老板给的指标是政府的上一个活动,一天近百万用户增长,让我们一点要保证业务的流畅性和稳定性,别再第一天就掉链子程序挂了。大家公司的业务有多少并发啊?有没有大神指导一下方向??

    12 条回复    2023-04-22 14:12:46 +08:00
    zhonj
        1
    zhonj  
    OP
       2023-04-21 21:59:00 +08:00
    因为不知道如何继续去扩展,目前预算还没有往上报,活动持续时间应该在两个月左右。后面应该又会恢复到当前状态。预算只要不是太离谱应该都没啥问题
    chiron688
        2
    chiron688  
       2023-04-21 23:52:07 +08:00 via iPhone
    一天百万级别的增长……这两台 8h16g 确实不够看,更别说还有带宽的问题,估计十万级别的并发就能把带宽给塞满了
    mikeguan
        3
    mikeguan  
       2023-04-22 00:09:36 +08:00 via Android
    不用个两位数以上节点没必要上 k8s
    eDeeraiD0thei6Oh
        4
    eDeeraiD0thei6Oh  
       2023-04-22 00:12:29 +08:00
    公益项目不是该政府出钱吗?
    gen900
        5
    gen900  
       2023-04-22 07:06:29 +08:00 via iPhone
    我也想说是不是瓶颈在带宽。70%cpu 甚至再高一点才是理想状态,也不至于是瓶颈
    zhonj
        6
    zhonj  
    OP
       2023-04-22 10:37:13 +08:00
    @eDeeraiD0thei6Oh 是的啊,得要有个预算报过取
    zhonj
        7
    zhonj  
    OP
       2023-04-22 10:39:49 +08:00
    @chiron688 现在的跑法 100M 带宽就用了 30M 左右
    zhonj
        8
    zhonj  
    OP
       2023-04-22 10:42:52 +08:00
    @gen900 你这么一说我突然想起来了,我们公司带宽上行就 30M,服务器根本没有压到瓶颈
    zhonj
        9
    zhonj  
    OP
       2023-04-22 10:44:31 +08:00
    @mikeguan 上 k8s 主要是要滚动部署,自动扩容。然后运维起来也方便一些。
    weiweiwitch
        10
    weiweiwitch  
       2023-04-22 11:06:56 +08:00
    你是技术负责人,还是说有技术总监或 CTO 在你上面?这个架构问题一般要负责人去考虑和兜底的。

    一天百万级不等于天天百万级。既然上了云平台,又用了 k8s 了,就在负载重的初期,把服务器尽可能堆上去。等负载过了,逐步缩容。
    至于要加多少服务器,如果项目重要,就尽可能放开了加,加到你自己有信心为止。这个成本让老板评估。
    只是要考虑清楚,整体架构是否有扩容上的问题。别加了 N 多服务器,还是被单点问题搞崩了,给老板落口实。

    监控有吗?
    相比于考虑是否能抗住负载。从监控数据中,把性能问题排查和解决清楚更重要。
    程序里面要有各种探针什么的。压测时要在监控面板检查这些探针上报的指标,看是否有不符合预期的。不是只看看 CPU 内存啥的就够了。延迟到 1 秒了,要分析下请求为啥要 1s ,卡在 IO 上还是 CPU 处理上还是其他什么原因。只有把可能的负载问题都解决了,才能说有信心能成功上线。

    压测很重要!
    压测要尽可能覆盖重要场景,能覆盖大多数场景就更好了。
    压测的量,有条件要模拟峰值的量。一天进百万用户,你就找时间灌百万甚至千万用户进去。
    QPS 到 5000 ,就要至少维持 5000 甚至 1W 的 QPS ,跑个半天一天。带宽什么的也是。
    并且一定要在生产环境要用的服务器上做。
    只有测清楚了,才能有信心上线。

    老板的话一般都有水分。百万用户,实际到的不一定有那么多。
    这么多的量,任何甲方都要好好的评估下这个公司是否有技术能力吃下才敢给。
    所以,也可以稍微放宽心态。别太紧张。
    weiweiwitch
        11
    weiweiwitch  
       2023-04-22 11:08:59 +08:00
    @zhonj 压测,一般也至少要用云商的机器去当施压机。而不是自己公司的。不然没等压力上去,你们的出口带宽就不够了,或者你们的路由器就先崩了。
    eDeeraiD0thei6Oh
        12
    eDeeraiD0thei6Oh  
       2023-04-22 14:12:46 +08:00
    @zhonj 政 x 府的单一般都需要给个一二三期分阶段,

    让客户估计在各个阶段的用户峰值,或者你去收集客户信息给他们估算,显得专业。总之就是给客户提出问题,他们不知道怎么做,然后你站出来说我们有经验可以协助。总之就是得显出你专业,不管是在哪个方面。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   965 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:49 · PVG 04:49 · LAX 12:49 · JFK 15:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.