//
基准测试应该运行足够长的时间,这一点很重要。如果需要测试系统在稳定状态时的性能,那么当然需要在稳定状态下测试并观察。而如果系统有大量的数据和内存,要达到稳定的状态可能需要很长时间。大部分系统都会有一些对突发情况的余量,能够吸收性能尖峰,将一些工作延迟到高峰期之后执行。但当时机器加压足够长时间之后,这些余量会被耗尽,系统的短期尖峰也就无法维持原来的高性能。
有时候无法确认测试需要运行多长时间才足够。如果这样,可以让测试一直运行,持续观察直到确认系统已经稳定。
系统预热完成后,读I/O活动在三四个小时后曲线趋向稳定。但写I/O至少在八小时内变化还是很大的,之后有一些点的波动较大。但读和写总体来说基本稳定了。一个简单的测试规则,就是等系统看起来稳定的时间至少等于系统预热的时间。一个常见的错误的测试方式是,只执行一系列短期的测试,比如每次60秒,并在此测试的基础上去总结系统的性能。我们经常可以听到类是这样的话“我尝试对新版本做了测试,但还不如旧版本快”。然而我们分析实际的测试结果后发现,测试的方法根本不足以得出这样的结论。有时候人们也会强调说不可能有时间去测试8或者12个小时,以验证10个不同并发性在两到三个不同版本下的性能。如果没有时间去完成准确完整的基准测试,那么已经花费的所有时间都是一种浪费。有时候要相信别人的测试结果,这总比做一次半拉子的测试来得到一个错误的结论要好。