引言:项目的设备选型是一项细腻而又艰巨的任务。因为它有一次性、不可更改、兼容性、扩展性、功能性、性能性、易用性等参数阀值来参照。例如我们的项目,首先要了解今年的设备采购预算有多少,如何分配的,分配下来每个项目大概有多少,按照预算标准进行分级。其次由于我们是金融企业采购范围是有所限制的,会有一个备选目录,上面列举了品牌、厂家、规格等信息,只能在这些目录中选择,如果设备有超出目录的需要写说明申请。
再次就需要按照需求说明书和自己的实战经验来选择合适的设备,我可以列举几项参考参数来帮助我们选择到合适的设备。
设备选型
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