面试题答案
一键面试依据基准测试结果规划数据库关键容量参数
1. 存储容量规划
- 依据:通过基准测试记录写入数据量以及数据增长趋势。例如,若测试期间每日新增数据量为100MB,且业务预期未来一段时间增长平稳,可依据此来规划存储容量。
- 计算方法:假设未来业务发展周期为T天,每日新增数据量为D MB,初始数据量为I MB。则存储容量C至少应为 C = I + D * T 。同时要考虑一定冗余,假设冗余系数为r(如r = 1.2),最终规划的存储容量为 C' = C * r 。
2. CPU资源规划
- 依据:基准测试中的响应时间与CPU利用率相关。若在高并发读/写测试时,CPU利用率持续维持在高位(如80%以上)且响应时间开始明显变长,说明CPU资源可能成为瓶颈。
- 计算方法:设基准测试中高并发场景下平均CPU利用率为U(0 - 100%),期望的CPU利用率阈值为T(一般建议70% - 80%),当前业务并发量为N,预期未来并发量增长系数为G。当前服务器CPU核心数为C。则所需CPU核心数C' = (N * G * U) / T 。如果计算出的C'大于当前C,则需要增加CPU核心数或更换更强大的CPU。
3. 内存分配规划
- 依据:基准测试中关注查询缓存命中率、InnoDB缓冲池命中率等指标。高的命中率表明内存使用效率高,若命中率低,说明可能内存分配不足。例如,查询缓存命中率低,可能需要增加查询缓存内存;InnoDB缓冲池命中率低,可能需要增加InnoDB缓冲池内存。
- 计算方法:
- 查询缓存:设基准测试中查询缓存占用内存为M1,平均查询缓存命中率为H1,期望命中率为H2。假设查询量与内存需求呈线性关系,则调整后的查询缓存内存M1' = M1 * (H2 / H1) 。
- InnoDB缓冲池:根据基准测试中InnoDB缓冲池命中率H3(如当前为70%),期望命中率H4(如80%)。假设InnoDB缓冲池已使用内存为M2,InnoDB数据总大小为S。可通过公式 M2' = M2 * (H4 / H3) 来估算需要调整的InnoDB缓冲池内存大小。若M2'大于当前分配内存,则需要增加InnoDB缓冲池内存。同时要考虑系统整体内存情况,避免因过度分配InnoDB缓冲池内存导致系统内存不足。