高性能MySQL:设计和规划基准测试
设计和规划基准测试
规划基准测试的第一步是提出问题并明确目标 然后决定是采用标准的基准测试 还是设计专用的测试
如果采用标准的基准测试 应该确认选择了合适的测试方案 例如 不要使用TPC H 测试电子商务系统 在TPC 的定义中 TPC H 是即席查询和决策支持型应用的基准测试 因此不适合用来测试OLTP 系统
设计专用的基准测试是很复杂的 往往需要一个迭代的过程 首先需要获得生产数据集的快照 并且该快照很容易还原 以便进行后续的测试
然后 针对数据运行查询 可以建立一个单元测试集作为初步的测试 并运行多遍 但是这和真实的数据库环境还是有差别的 更好的办法是选择一个有代表性的时间段 比如高峰期的一个小时 或者一整天 记录生产系统上的所有查询裂前 如果时间段选得比较小 则可以选择多个时间段 这样有助于覆盖整个系统的活动状态 例如每周报表的查询 或者非峰值时间运行的批处理作业注
可以在不同级别记录查询 例如 如果是集成式(full stack)基准测试 可以记录Web服务器上的HTTP 请求 也可以打开MySQL 的查询日志(Query Log) 倘若要重演这些查询 就要确保创建多线程来并行执行 而不是单个线程线性地执行 对日志中的每个连接都应该创建独立的线程 而不是将所有的查询随机地分配到一些线程中 查肆神清询日志中记录了每个查询是在哪个连接中执行的
即使不需要创建专用的基准测试 详细地写下测试规划也是必需的 测试可能要多次反复运行 因此需要精确地重现测试过程 而且也应该考虑到未来 执行下一轮测试时可能已经不是同一个人了 即使还是同一个人 也有可能不会确切地记得初次运行时的情况 测试规划应该记录测试数据 系统配置的步骤 如何测量和分析结果 以及预热的方案等
应该建立将参数和结果文档化的规范 每一轮测试都必须进行详细记录瞎凯 文档规范可以很简单 比如采用电子表格(spreadsheet)或者记事本形式 也可以是复杂的自定义的数据库 需要记住的是 经常要写一些脚本来分析测试结果 因此如果能够不用打开电子表格或者文本文件等额外操作 当然是更好的
返回目录 高性能MySQL
编辑推荐
ASP NET开发培训视频教程
数据仓库与数据挖掘培训视频教程
lishixinzhi/Article/program/MySQL/201311/29739
2020-10-29 广告