结合第二步,数据库设计完成以后,在落地实施过程中,不管是云资源还是物理服务器都需要确定某个规格的资源服务来支撑后期的业务运行。因此怎么判断该资源规格的大小,是我们首先要考虑的问题。
在申请资源过程中需要考虑的;几个指标为cpu,存储,内存,网络以及服务器的个数。在这里我介绍几种方法:
1:经验预估法:
该方法需要对系统有个初步的判断,了解系统的以后几年可能出现的增长量,以及数据内容。
CPU个数计算原则
cpu资源申请,需要结合业务类型,并发量,响应时间,cpu上下文切换,系统预留等因素。原则上cpu个数为:(并发量*(响应时间+cpu切换时间))*2,
注:系统预留cpu资源50%
比如平均响应时间0.2s,常规并发量为100,cpu切换时间由于很小可以忽略,cpu=0.2*100*2=40,结合实际情况,数据库对于应用的要求是短平快,因此很多情况下sql执行时间远远小于0.5,该情况可以设置cpu 个数为32C。
内存计算原则
测算方法一:服务器内存主要包括操作系统占用内存,应用连接消耗的内存,数据库内存和系统预留内存,总体来说 数据库内存约占整个物理内存的50-60%
测算方法二:按照标准设计,物理内存和cpu核数按照比例分配4:1或者2:1分配
由于内存和sql运行状态息息相关,并不能完全设置准确,需要在运行一段时间按后,观察数据库负载,在进行调整。因此可以根据历史的内存使用情况进行一个初步判断
容量规划原则
数据库容量规划结合考虑表生命周期管理,存量数据,业务数据保留时间要求,数据库备份,日志,数据库特性(表膨胀),业务数据量增长等因素。比较合理的规划方式为:把已平稳运行的数据库环境的存储大小作为初始化容量空间大小,再预留50%的存储空间。
由于存储容量在云资源中很容易扩展,在系统平稳运行三个月以后,再次进行存储容量预估,会更加准确合理。
2:规格适配法:
如果对业务了解不深,可以针对多个规格的数据库进行一次压测,测试某个规格配置下的数据库服务器,能够满足多大的tps,qps的请求。再此基础上进行一个选择。在此举例的为mysql配置,仅为参考,请根据实际测试结果进行适配。

可以针对不同的业务场景,把硬件配置分为A,B,C三档,A配置最高,B其次,C最低,以此推广到全国所有的应用服务器的部署方案中。
A档服务器配置包括xxx等业务场景,适用于湖北,湖南
序号 | 类别 | 设备类型 | 主要配置 | 数量 | 备注 |
1 | 数据库服务器 | 云资源 | 64核/128G,1024GB | 3 | 一主两从 |
B档服务器配置包括xxx等业务场景。适用于河北,河南
序号 | 类别 | 设备类型 | 主要配置 | 数量 | 备注 |
1 | 数据库服务器 | 云资源 | 32核/128G,800GB | 3 | 一主两从 |
C档服务器配置包括xxx等业务场景。适用于山西,山东
序号 | 类别 | 设备类型 | 主要配置 | 数量 | 备注 |
1 | 数据库服务器 | 云资源 | 16核/64G,500GB | 3 | 一主两从 |
3:动态调整法
该方法比较适用于云资源中,很多情况下,没有时间做充分的压力测试,也没有精确的业务预估值以供参考,因此云数据库是一个比较好的方案,初始情况下申请一台配置比较低的rds 数据库,在使用一段时间后,观察资源使用情况在进行调整。当然在选用云资源的时候建议选用独享型,高可用模式
开源去o的第二步-数据库规划设计 https://www.modb.pro/db/242694
开源去o的第一步-关系数据库选型 https://www.modb.pro/db/239808




