1: 假设条件
响应时间 : 查询和操作请求ms级返回。
数据总量 : 1年内数据量大约1T数据量。
每秒请求量 :每秒有1w次请求。
读写比: 读写比是4:1
重要程度: 核心系统,P1级故障
其他说明 : 一般会处理最近15天内的数据。数据记录总体长度大约为1KB
2:评估
1: buffer 评估, 带宽评估.
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:处理最近7天内的数据
结果:热数据量为:(1*1024/365)*15 = 42GB。
Step5:操作ms级返回
结果:操作ms级别返回,并且读压力更大,那么需要尽可能的将热数据加载到内存。按照内存命中率接近100%计算的话,那么Innodb buffer大约为42GB,而其他内存需求大 概为1~2GB,因此内存超配大约为45GB。按照超配原则,写带宽(wBPS)限制为50MB/s;读带宽(rBPS)限制为150MB/s。