频道栏目
读书频道 > 数据库 > Oracle > Oracle性能预测
3.5.2 如何求多个值的平均值
2013-09-04 15:01:37     我来说两句
收藏   我要投稿

本文所属图书 > Oracle性能预测

本书共10章。第1章介绍了性能预测的基本概念和范畴,分析了预测提供的信息及其价值;第2章介绍了基本的性能预测概念,深入研究了如何组合及建模性能预测;第3章介绍了提高预测精度的一些有效手段,通过选择合适的...  立即去当当网订购

我们通常假设平均值可以代表一组样本。但有时样本是如此多样,致使平均值并不能非常好地代表样本。在预测时,这可能会导致预测结果不精确。如果你从来都没有想过这一点,那么这似乎很奇怪,但请看看表3-4中的平均服务时间是多少?

 

然而,12.3的服务时间能够恰当地表示一次网页的点击或一笔订单的输入吗?答案是不能。更奇怪的是,每分钟有500个网页点击量但对应每分钟只有2个订单。难道一个平均值能更接近网页点击服务时间不具有意义吗?如果我们依据其他值来影响平均值,我们就正是在对平均值加权。我喜欢把这个12.3的平均值计算结果叫做简单平均值或标准平均值。

除了正确地描述工作负载,采用加权平均大概是你可以做的最能够增加精度的事情!为了得到一个更好的平均服务时间,可以根据其相关的到达率进行加权。首先,将服务时间乘以每一笔事务的到达率。然后将它们全部加在一起的总和除以所有到达的总次数。表3-4中的例子介绍了如何计算加权平均服务时间。

 

难道平均值2.08不比12.3的感觉更好吗?它抓住了服务时间的本质或特征。试想一下,在计算使用率、排队时间、队列长度和响应时间中用这两个不同的值会产生的差异!下面是数学极客格式的实际加权平均公式:

 

例3-7中对比了使用一个标准的平均值和加权平均值的预测结果。正如你将看到的,差异是令人震惊的!

 例3-7  对比使用标准平均和加权平均的数据

假设我们要预测IO利用率和响应时间。峰值处理发生在周二下午一个小时的时间里。使用UNIX的iostat命令收集数据。排队论模型要执行预测并验证预测的利用率,需要知道设备的数量、到达率和平均服务时间。

 

请注意平均服务时间的差异。简单平均值是9.71毫秒,而加权平均值为11.26毫秒。这看起来不是很像,但仔细看表3-7。最左边的列是到达率。接下来显示的4列是在简单平均服务时间基础上计算的结果,再接下来显示的是在加权平均服务时间基础上的预测。

 

先看基本公式和Erlang C公式响应时间结果之间的差异。它们没有什么区别!这是因为对于IO子系统,每个队列的服务器只有一个,而当每个队列有一个或两个服务器时,误差几乎为零。

然而,再看表3-7中最右侧的列。此列显示的是利用服务时间标准平均值计算的Erlang C响应时间和利用服务时间加权平均值计算的Erlang C响应时间之间的差异。响应时间的差异是非常显著的。从一开始,服务时间差异就导致14%的响应时间差异,继续下去,差异增加到接近90%!图3-6以图形方式显示了这个惊人的差异。



这个例子表明,采用加权平均值代替简单平均值对你的预测有显著影响。在这个例子中,如果我们在简单平均值的基础上提出建议,那么我们会期望IO子系统能处理可能一直难以忍受的工作负载。因此,我们会对IO子系统的响应时间陡升和服务水平开始被破坏感到惊讶,所有这一切都是因为我们懒惰了,没有采用加权平均值进行计算。考虑到计算加权平均值的简单性和这样做的潜在好处,建议一直使用加权平均值的计算方法,除非有很好的理由应用其他方法。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:3.5.1 正确的分布模式
下一篇:3.6 案例研究:高光公司
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站