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

2023-04-21 21:55:03 +08:00
 zhonj

当前我们公司的的业务面向政府的公益项目,应用程序不是很复杂,后端历史遗留使用的 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 台

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

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

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

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

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

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

让客户估计在各个阶段的用户峰值,或者你去收集客户信息给他们估算,显得专业。总之就是给客户提出问题,他们不知道怎么做,然后你站出来说我们有经验可以协助。总之就是得显出你专业,不管是在哪个方面。

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

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

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

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

© 2021 V2EX