|
<P> 当想要测量受多个因素影响的性能目标的峰值的时候,如何设计测试用例,</P>
<P>测试数据以期使用尽量小的代价(时间上)获得尽量逼近真实值的性能峰值</P>
<P>是需要考虑的。</P>
<P> </P>
<P> 如果同时变动数个因素的取值,综合测试性能目标的峰值,则耗时较多且</P>
<P>测量结果分析困难,趋势不明显。 开始考虑每次测量只变动诸因素中的一个</P>
<P>,其他因素固定,求得峰值时的该因素取值,如此多此后,确认各因素单独变</P>
<P>动时测量目标取峰值时该因素的取值,然后使用各个因素峰值时取值即可得</P>
<P>到测量目标的峰值。 上述想法看似合理,其实忽视了各个因素之间的内在联系。</P>
<P> </P>
<P> 比如在对opensuse11上管道传输带宽的性能测定中发现并发数 2 ,读写总量</P>
<P> (-无影响),读写片128kb,预热时间 (-无影响), 重复执行次数 (-无影响)时可</P>
<P>分别取得峰值,则认为bw_pipe -m 131072 -P 2测试用例可取得带宽传输的峰</P>
<P>值。但其实不然。</P>
<P> </P>
<P> 在上述测试之后,针对并发数和读写片大小进行里联立变更测定,即针对变化</P>
<P>的并发数(从1到20),在每一个并发数取值下变更读写片大小(从1kb到10M),这</P>
<P>样就得到一个二维曲面,其中发现带宽值超过2000mb/s的一个(并发度从1~3,</P>
<P>读写片50KB~250KB)的区域,且最终测得的峰值在并发度为3,读写片大小为256kb</P>
<P>的地方,峰值为2030.67,而原先以为的读写片为2,读写片大小为128kb的地方只取</P>
<P>得2021.27mb/s,抛开些许误差的影响,也可以看出原先认为各个取得峰值的因素取</P>
<P>值堆积在一起就可取的最终测试对象峰值的想法有失偏颇,尤其是在峰值精度要求较</P>
<P>高的时候,一定应辅以关键因素的联立变更测试。</P> |
|