引言:项目的设备选型是一项细腻而又艰巨的任务。因为它有一次性、不可更改、兼容性、扩展性、功能性、性能性、易用性等参数阀值来参照。例如我们的项目,首先要了解今年的设备采购预算有多少,如何分配的,分配下来每个项目大概有多少,按照预算标准进行分级。其次由于我们是金融企业采购范围是有所限制的,会有一个备选目录,上面列举了品牌、厂家、规格等信息,只能在这些目录中选择,如果设备有超出目录的需要写说明申请。
再次就需要按照需求说明书和自己的实战经验来选择合适的设备,我可以列举几项参考参数来帮助我们选择到合适的设备。
设备选型
CPU:聚合运算、并行度、硬件RAM结构、内存匹配程度,是选择CPU的重要指标。
内存:结果集响应时间、部署的软件负载程度、操作系统、数据交互、内存总线,是选择内存的重要指标。
存储:根据业务数据应用场景,单位时间的吞吐量,I/O效率,数据总量,读写是否分离,顺序读写,随机读写,数据安全级别,HA,备份与恢复时间等等考虑。
预估数据总量:一般我们以一年为一个时间单位,根据接口规范和需求说明书,把所有表中所有字段的长度累加起来,并计算出总的记录条数,这样就可以大概算出总的数据量是多少,在根据超配原理,放大2~3倍来得出结论。
网络设备:网络吞吐量、最大并发会话数、速率、是否数据加密、带宽、支持多少光纤口和电口,电路保护、安全保护模式、支持几个磁盘通道(一个HBA+一个磁盘子系统=一个磁盘通道)光口or电口。
根据I/O效率可分:PCI-E卡->SSD->SAS->SCSI->SATA
操作系统:收费版、免费版、32bit、64bit
系统规划:我认为系统规划可以与设备选型一起来执行,因为他们是一对相辅相成的孪生兄弟,系统的精细化规划有助于设备参数的选择,设备的型号的选择有助于引导规划方案。根据不同场景常用的有如下几个方面。
数据区
系统区
备份区
临时区
日志区
缓冲区
业务评估
数据总量
Step1:1年内数据量大约500G
结果:每秒产生的数据量为500*1024(MB)*1024(KB)/(365*24*60*60)31536000s=17KB/s
每秒请求数&读写比
Step2:每秒3w次请求,读写比1:1
结果:每秒读请求30000/2*1=15000次/秒,每秒写请求30000/2*1=15000次/秒
Step3:每次数据记录长度大约为1KB
结果:根据Step1得出的结果,每秒insert的写入数据量大约为17KB/s,可以求出每秒insert的写请求17KB/1KB=17次。根据Step2得到的每秒写请求15000次/秒(insert写请求+update写请求+delete写请求),可知15000-17=14983次/s为update和delete写请求。由于Mysql数据库的读写操作按照page为单位处理,一页大小为16KB(默认,也可以手动定义8KB、32KB等),假设每次操作的页都不同,那么每秒写请求数据量为16KB*15000次=234M/s,每秒读请求数据量为16KB*15000次=234M/s。
Step4:处理最近7天内的数据
结果:热数据量为500GB/365天*7天=10GB
响应时间
Step5:操作毫秒ms级返回
结果:结果集要求毫秒ms级返回,那么需要尽可能的将热数据加载入内存中进行缓存。按照内存命中率100%计算,
那么Innodb buffer(Mysql存储引擎缓冲区)大小为10GB,而其他组件例如OS、Application、network需要大约4GB内存,因此内存超配大约为14GB。按照超配原则,写带宽(WBPS)限制为300MB/s,读带宽(RBPS)限制为300MB/s。
重要程度
根据业务数据重要程度,采用合适的HA高可用技术。
Mysql 设备选型 系统规划 成本评估 业务评估
文章来自:http://leonarding.blog.51cto.com/6045525/1431129