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