业务评估
业务一
需求 | 指标 |
---|---|
响应时间 | 查询和操作请求ms级返回。 |
数据总量 | 1年内数据量大约1T数据量。 |
每秒请求量 | 每秒有1w次请求。 |
读写比 | 读写比是4:1。 |
重要程度 | 核心系统,P1级故障。 |
其他说明 | 数据具有时效性,历史数据访问较少,一般会处理最近15天内的数据。数据记录总体长度大约为1KB。 |
Step1:1年内数据量大约1T
结果:每秒产生的数据量为1*1024*1024*1024/(365*24*60*60) = 34KB/s
Step2:每秒1w次请求;读写比是4:1
结果:每秒读请求10000/5*4 = 8000/s;每秒写请求数10000/5*1 = 2000/s
Step3:记录长度大约为1KB
结果:根据Step1得出的结果,每秒insert的数据写入大约为34/s;根据Step2得到的每秒写2000/s,可知1966/s为update和delete操作。由于MySQL数据读写操作按照页来处理,页大小为16KB,假设每次操作的页都不相同。那么每秒写操作数据量为:16KB*2000/s = 32M/s,每秒读操作数据量为:16KB*8000/s = 128M/s。
Step4:处理最近15天内的数据
结果:热数据量为:(1*1024/365)*15 = 42GB。
Step5:操作ms级返回
结果:操作ms级别返回,并且读压力更大,那么需要尽可能的将热数据加载到内存。按照内存命中率接近100%计算的话,那么Innodb buffer大约为42GB,而其他内存需求大概为1~2GB,因此内存超配大约为45GB。按照超配原则,写带宽(wBPS)限制为50MB/s;读带宽(rBPS)限制为150MB/s。
业务二
需求 | 指标 |
---|---|
响应时间 | 查询和操作请求ms级返回。 |
数据总量 | 1年内数据量大约500G数据量。 |
每秒请求量 | 每秒有3w次请求。 |
读写比 | 读写比是1:1。 |
重要程度 | 核心系统,P1级故障。 |
其他说明 | 数据记录长度约为1KB,数据1周内数据操作频繁 |
Step1:1年内数据量大约500G
结果:每秒产生的数据量为 500*1024*1024/(365*24*60 *60)=17k/s
Step2:每秒1W次请求;读写比是1:1
结果:每秒读请求30000/2*1 = 15000/s;每秒写请求数30000/2*1=15000/s
Step3:记录长度大约为1KB
结 果:根据Step1得出的结果,每秒insert的数据写入大约为17/s;根据Step2得到的每秒写15000/s,可知14983为update为 update和delete操作。由于MySQL数据读写操作按照页来处理,页大小为16KB,假设每次操作的页都不相同。那么每秒写操作数据量为 16KB*15000/s=240M/s,每秒读操作数据量为:16KB*15000/s=240M/s。
Step4:处理最近1周内的数据
结果:热数据为:(500/365)*7=10GB。
Step5:操作ms级返回
结 果:操作ms级别返回,并且读压力更大,那么需要尽可能的将热数据加载到内存。按照内存命中率接近100%计算的话,那么Innodb buffer大约为10GB,而其他内存需求大概为1~2GB,因此内存超配大约为12GB。按照超配原则,写带宽(wBPS)限制为250MB/s;读 带宽(rBPS)限制为250MB/s。