这些错误会导致测试结果无用,或不精确。
- 使用真实数据的一个子集,而不是全集。 例如:app需要数百 GB 数据,但测试之用了1GB数据;或者只使用当前数据集进行测试,却希望模拟将来业务增长后的性能测试。
- 使用错误的分布式数据。 例如:平均的使用分布式数据,而忽略了真实系统中是有“热点区域(Hot Sports)”的(随即产生的数据往往不同于真实分布的。)
- 使用非真实的分布参数。 例如:假定所有用户的概要文件都平均地被读取。
- 在多用户应用中使用单用户想定进行测试。
- 在单服务器上测试一个分布式应用。
- 与真实用户行为不匹配。 例如:Web页面中的 “思考时间 (Think Time)”。真实用户在请求到一个页面后,会阅读它,而不会不停顿地一个接一个点击相关链接。
- 循环运行同一个查询。真实的查询是不相同的,而这会引起缓存内容变化。相同的查询则会在某种程度上,全部或部分地被缓存起来。
- 忽略错误检查,如果测试出错,测试结果会毫无意义。比如一个原来很慢的操作忽然变得很快了,这就需要检查是否有错误产生。否则这种测试结果可能只是测试了MySql如何快速地检查到一个SQL语法错误。在基准测试后,一定要检查相关错误日志,这是一个原则性的要求。
- 忽略了系统的暖机(Warm Up)过程。 例如:系统重启之后马上就进行测试。有时要了解服务器在重启多久后才能到达正常的性能容量,所以要特别注意这个暖机时间。反过来说,如果测试的目的是想分析正常情况下的性能,那要注意,重启后马上进行基准测试时,许多缓存都还没有数据,并且这种测试结果也不能反映缓存已被填满数据后的效果。
- 使用默认的服务器设置。