基准测试方法

基准测试的方法

避免常见错误

在讲解基准测试方法之前,先来看下如何避免一些常见的错误。

1.使用真实数据的子集而不是全集。例如应用需要处理几百GB的数据,但测试只有1GB数据;或者只是用当前数据进行测试,却希望模拟未来业务大幅增长后的情况。
2.使用错误的数据分布。例如使用均匀分布的数据测试,而系统的真实数据有很多热点区域(随机生成的测试数据通常无法模拟真实的数据分布)。
3.使用不真实的分布参数,例如假定所有用户的个人信息都会被平均地读取。
4.在多用户场景下,只做单用户测试。
5.在但服务器上测试分布式应用。
6.与真实用户行为不匹配。例如Web页面中的”思考时间”。真实用户在请求到一个页面后会阅读一段时间,而不是不停顿地一个接一个点击相关链接。
7.没有检查错误。如果测试的结果无法得到合理的解释,比如一个本应该很慢的查询突然间变快了,就应该检查是否有错误产生。否则可能只是测试了Mysql检测语法错误的速度了。基准测试完成后,一定要检查一下错误日志,这应当是基本的要求。
8.忽略了系统预热的过程。例如系统重启后马上进行测试。有时候需要了解系统重启后需要多长时间才能达到正常的性能容量,要特别留意预热的时长。发过来说,如果要想分析正常的性能,需要注意,弱基准测试在重启以后马上启动,则缓存是冷的,还没有数据,这时即使测试的压力相同,得到的结果也和已经装满数据时的结果是不同的。
9.使用默认的服务器配置。第三章详细地讨论服务器的优化配置
10.测试时间太短。基准测试需要持续一定的时间。后续会继续讨论这个话题。

基准测试步骤:

设计和规划基准测试

在开始实施基准测试之前要规划基准测试。选择合适的测试方案。设计专用的基准测试是很复杂的,往往需要一个迭代的过程。首先需要获取生产数据集的快照,并且该快照很容易还原,以便进行后续的测试。这里数据选择上也需要注意,要选择一个有代表性的时间段,最好选取的时间段数据可以覆盖整个系统的活动状态。

基准测试应该运行多长时间

基准测试应该运行足够长的时间,这里足够长的时间指的是,让测试一直运行到确认系统已经稳定为止。详细解释参照《MySQL高性能》。

获取系统性能和状态

在执行基准测试时,要尽可能多的收集被测试系统的信息。这里可以通过一些自动化脚本进行收集系统状态的性能指标,如CPU使用率、磁盘I/O、网络流量统计、SHOW GLOBAL STATUS计数器等。

获得准确的测试结果

选择了正确的基准测试。收集了相关的数据。没有采用错误的测试标准。可重复的测试结果,每次测试之前都确保了系统的状态一致性。测试过程中要注意很多因素,包括外部的压力、性能分析和监控系统、详细的日志记录、周期性作业,以及其他一些因素们都会影响到测试结果。每次测试中,修改的参数应该尽量少。如果必须要一次修改多个参数,那么可能会丢失一些信息。有些参数依赖其他参数,这些参数可能无法单独修改。有时候甚至都没有意识到这些依赖,这给测试带来了复杂性。

运行基准测试并分析结果

之前的步骤准备就绪之后就可以进行基准测试、收集和分析数据了。这里最好采用自动化测试,这样可以减少人工干预,减少出错遗漏的概率。

绘图的重要性

通过绘图可以很容易发现一些在原始数据中很难注意的问题,可能你会坚持看测试工具打印出来的平均值或者其他汇总过的信息,但平均值有时候是没有用的,他会掩盖掉一些真实的情况。可以通过之前自动化脚本收集的数据使用相关的分析软件进行分析绘制图形,这样可以帮助我们快速的发现问题。

猜你喜欢

转载自blog.csdn.net/qq_18377515/article/details/80793086
今日推荐