一、资源评估维度及公式
1. CPU资源评估
公式
CPU核心数 = (并发用户数 × 请求处理时间(秒) × 安全系数) / 超线程因子
并发用户数:同时处理的请求数量
请求处理时间:单个请求的平均处理时间(压测获取)
安全系数:推荐1.5~2(预留突发流量)
超线程因子:物理核心与逻辑核心比例(通常取2)
场景
单体应用:计算整体服务需求
微服务:按服务模块分别计算后累加
2. 内存评估
公式
总内存 = JVM堆内存 + 非堆内存 + 系统预留 + 其他进程
JVM堆内存:通过-Xmx参数设置(建议占总内存60%~70%)
非堆内存:元空间+线程栈(约200MB~1GB)
系统预留:至少1GB(操作系统+MySQL等)
微服务额外:每个实例单独计算
场景
单体应用:集中式内存分配
微服务:分布式内存需求叠加
3. 存储评估
公式
存储空间 = 日志量 + 应用包 + 数据库存储 × 副本因子
日志量:日均日志量 × 保存天数 × 压缩率(0.3~0.7)
数据库存储:数据行数 × 单行大小 × 增长因子
副本因子:MySQL主从复制时取2~3
场景
单体应用:集中存储评估
微服务:需考虑分布式日志收集系统
4. 网络带宽评估
公式
带宽(Mbps) = (单请求数据量(KB) × 并发数 × 8) / 响应时间(秒)
单请求数据量:平均请求+响应数据大小
突发流量:按峰值计算后×1.2倍
场景
API密集型服务需重点评估
微服务间通信增加内网带宽需求
5. 数据库评估
公式
连接池大小 ≈ (核心线程数 × 平均查询时间) / 超时时间
TPS = (有效工作时间 × 平均查询速度) / 事务复杂度
场景
单体应用:直连数据库
微服务:可能使用分库分表或读写分离
以下是一个针对中小型企业(用户量10万以内)的Java后端服务
(SpringBoot单体应用)的服务器配置评估详细示例。我们将从用户量、
业务场景、技术栈出发,逐步计算所需的CPU、内存、存储和数据库配置。
一、业务场景假设
用户量:10万用户
日活跃用户(DAU):1万(10%活跃)
峰值并发用户:1000(10%的DAU同时在线)
业务类型:电商类应用(包含商品浏览、下单、支付等)
技术栈:
SpringBoot单体应用
MySQL数据库
Redis缓存
Nginx反向代理
二、配置评估步骤
1. CPU评估
公式
CPU核心数 = (并发用户数 × 请求处理时间(秒) × 安全系数) / 超线程因子
参数
并发用户数:1000
请求处理时间:50ms(0.05秒,通过压测获取)
安全系数:1.5(预留突发流量)
超线程因子:2(物理核心与逻辑核心比例)
计算
CPU核心数 = (1000 × 0.05 × 1.5) / 2 = 37.5
实际建议:4核~8核(云服务器通常提供4核、8核选项)
2. 内存评估
公式
总内存 = JVM堆内存 + 非堆内存 + 系统预留 + 其他进程
参数
JVM堆内存:4GB(推荐占总内存60%~70%)
非堆内存:1GB(元空间+线程栈)
系统预留:1GB(操作系统+MySQL+Redis)
其他进程:Nginx等(0.5GB)
计算
总内存 = 4 + 1 + 1 + 0.5 = 6.5GB
实际建议:8GB(选择云服务器的8GB内存配置)
3. 存储评估
公式
存储空间 = 日志量 + 应用包 + 数据库存储 × 副本因子
参数
日志量:每天1GB,保存30天(压缩率0.5)
1GB × 30 × 0.5 = 15GB
应用包:SpringBoot应用包约100MB
数据库存储:
用户表:10万用户 × 1KB = 100MB
订单表:每天1000单 × 10KB × 30天 = 300MB
商品表:1万商品 × 10KB = 100MB
总数据库存储:100MB + 300MB + 100MB = 500MB
副本因子:2(MySQL主从复制)
计算
存储空间 = 15GB + 0.1GB + 0.5GB × 2 = 16.1GB
实际建议:50GB(预留增长空间)
4. 数据库评估
公式
连接池大小 ≈ (核心线程数 × 平均查询时间) / 超时时间
参数
核心线程数:50(SpringBoot默认线程池大小)
平均查询时间:0.2秒
超时时间:1秒
计算
连接池大小 = (50 × 0.2) / 1 = 10
实际建议:20~30(预留余量)
5. 网络带宽评估
公式
带宽(Mbps) = (单请求数据量(KB) × 并发数 × 8) / 响应时间(秒)
参数
单请求数据量:10KB(请求+响应)
并发数:1000
响应时间:0.05秒
计算
带宽 = (10 × 1000 × 8) / 0.05 = 1,600,000 Kbps = 1.6 Gbps
实际建议:100Mbps~1Gbps(云服务器通常提供100Mbps~1Gbps带宽)