频道栏目
读书频道 > 数据库 > Oracle > Oracle性能预测
3.2.2 基本预测模型
2013-09-04 14:12:27     我来说两句
收藏   我要投稿

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

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

预测最令人兴奋的方面之一是,我们可以用许多不同的预测模型开始工作。它们使我们警觉,并提供源源不绝的独特的预测情况。然而,如果你是刚开始从事预测工作,有时这也可能是难以应付的。但是不要担心,即使是只有极少数预测模型的经验,要对付Oracle数据库服务器相关的预测,你也会是游刃有余的。

在第2章中,我们讨论了基本的数学预测。在接下来的章节中,我们将深入比例模型、回归分析模型、排队论模型。下面是关于我们已介绍和将要介绍的预测模型的要点概述。

1.简单的数学

正如其名,简单的数学模型很简单。写这个模型几乎是令人尴尬的,但该模型是实用的。参与预测的任何人都用过简单的数学模型,但通常却没有考虑到这个问题。

例如,如果我们知道每个Oracle客户端进程占用10MB的非共享驻留内存,并且计划新增50个用户(产生50个额外的客户端进程),那么系统会需要500MB的额外内存。因为简单的数学没有涉及排队,所以这只适合于如内存、基本IO的预测以及基本的网络预测。我会反对用简单的数学对CPU、半精确的IO和高级的网络进行预测。

简单的数学可用于单组件预测。该模型可以采用应用程序或技术指标作为输入,输入数据可以从生产系统中提取或通过估算获得。简单的数学通常应用于持续时间较短的项目。虽然它的精度通常较低,但若应用得当,也足够完成工作了。

2.基本的预测数学

第2章已经介绍了基本的预测公式。这些基本的预测公式将成为预测的第二天性。虽然这些公式都非常简单,但它们也能产生相对精确的预测。这一切都取决于输入到公式的数据的质量。即使是最先进、最精确的预测模型也要遵守基本的预测数学的原则。

基本的公式是单组件的。它们通常用技术指标作为输入,输入数据可以从一个生产系统中提取或通过估算获得。这种模型通常用在短期项目中。

3.比例模型

比例模型是执行快速、低精度预测的一种很好的方式。早在20世纪90年代中期,我和两位同事就已经开始开发比例模型技术,以便我们在只是需要提供一个预测,但没有足够的时间使用一个替代模型的情况下能够应付自如。

比例模型在迅速地做硬件预算、快速地评估和揭示技术风险、验证替代技术架构设计,尤其是在估算应用程序包大小的工作中表现出色。该技术使你能够定义处理类别(如批处理过程)和一个特定的系统资源(如CPU)之间的关系。

比例模型因为没有产生统计数据,没有被正式地验证,所以被认为是一个真正的粗略的预测技术。虽然这项技术令许多实验室型容量规划师感到不安,但若使用得当,此技术的功能是非常强大的。

比例模型是一个单组件模型。技术的度量和以应用程序为中心的度量都可以作为它的输入,输入数据既可从生产系统中提取也可以通过估计获得。比例模型通常应用在短期项目中。当谈论比例模型时,有时用“项目”这个词甚至都是夸大的。

4.回归分析

回归分析是我个人最爱用的技术之一。它是一个很好的预测方式,因为它促使你自动化收集数据,并提供了业界公认的统计验证标准,它可以产生非常精确的预测,而且使用方法非常简单。

虽然大多数数学预测应用程序都是基于物理硬件配置的变化,但回归分析,通常用于确定在系统耗尽燃油前(最多)有多少业务活动会发生。例如,假设你有一个生产系统,现在要求确定这个系统在一个小时内预期处理的最大订单数量。这个案例的预测就非常适合用回归分析来做。

回归分析是一种单组件模型。它可以接收来自技术和应用程序度量的输入,输入数据是从生产系统(或基准)提取的。它通常被应用于最少一个月的项目。虽然最初的项目可能会持续一个月的时间,但如果将处理过程自动化,那么只需要几分钟就可以执行一个更新过的预测。

5.排队论

排队论基本上是对基本预测数学的一个升级。排队论是一个极好的预测技术,因为它的用途非常广泛。它既可用于预测也可以用于帮助人们了解当前的性能问题。另外,它在低精度和高精度的预测中都可以应用。在前面的章节中我们已经接触到了排队论,在本章后面的3.4节中,我们将更深入地研究它。第5章将介绍在各种各样的令人不舒服但现实的生活场景中怎样适当地运用排队论。

多组件排队论模型可以变得相当复杂。当需要更高的精度时,更是如此。产品质量的预测模型无疑需要高级的排队论以及它们本身的专有算法的深度介入。虽然排队论模型比基础数学预测模型更复杂,但本书中涉及的排队论模型都是IT从业人员容易理解的。

下面将介绍的是单组件的排队论模型。它们既可以从技术的来源(即,Oracle和操作系统)接收输入,也可以从应用程序的来源(如订单、发票、支票等)接收输入,并且输入的数据既可以从生产系统中又可以从拟议的系统中提取。项目持续时间依据精度的需求和数据的收集问题可能显著不同。

现在,你已经大致了解了这本书中的模型,例3-2和例3-3显示了实际的模型选择流程是怎么样的。

例3-2  选择一个低精度模型

这与例3-1的情况相同。我们公司的Oracle制造业系统下个月要增加250多个用户,我们的经理要知道CPU是否可以承载这样的负载。下面介绍这种情况是如何映射到我们可能选择的预测模型的。

简单的数学:因为我们专注的是CPU子系统,所以这个模型不符合我们的要求。我们需要一个数学上更严格的模型,以便更好地掌握系统的特点。

基本的预测数学:这个模型可能满足我们的要求,但是,因为关键的输入之一是Oracle制造业系统的用户数量,所以我们可以把用户数量作为工作负载使用,或将一些更技术性的指标与一个制造业用户相联系。如果沿着这个思路走,精度就会立即开始下降而且我们将需要开始做很多种假设,所以我们希望有一个更好的选择。

回归分析:这有可行性,因为我们不注重硬件的选择,如添加或删除CPU。我们需要的只是一个单组件模型,所以这是另一个加分。要使用回归分析,我们必须有类似生产的数据,因此必须考虑项目工期。使用回归分析的困难之一是,直到整个预测过程完成后你才会知道它的精度。如果我们有几个星期来收集数据,那么回归分析具有可能性。如果我们的老板要立即答复,那么我们就需要另一种替代的方法。

排队论:这个模型可能会无法正常工作,因为我们需要把用户转化成到达率。至少用回归分析我们将立即知道预测的精度,而在排队论中,我们将不得不做一些额外的验证工作。排队论令人称道的是它可以收集详细的数据并把这些数据归纳为少数几个值。同时排队论也提供了响应时间崩溃的预测,这超出了我们所需要的范围。既然不用遭遇潜在的复杂且又费时的工作负载收集以及描述过程中的麻烦,就可以满足所要求提供的精度。所以,还是让我们希望可以找到一个更好的替代模型吧。

比例模型:如果我们有合适的比例,比例模型将工作得很好。正如你所预料的,比例模型需要计算比例。一旦得出计算的比例,不需要收集额外的数据就可以进行快速的应用。精度、单组件、生产系统、项目工期等在所有要求上都支持使用比例模型。如果我们的老板想要马上得到一个答案且我们已知比例,那么它可以胜任此工作。否则,比例模型将与回归分析一样需要收集数据。

在这个例子中,我们需要知道更多的关于必须多久回答此问题的信息。我们还需要验证,这是否可以是一个低精度的预测,我们需要知道是否存在比例或其他已收集的性能数据。无论是比例模型还是回归分析都有可能成为最好的候选模型。

例3-3  选择服务水平为中心的模式

假设我们负责确保我们公司最重要的产品Oracle数据库服务器的服务水平满足需求。除了预期的50%的工作负载增加,我们要预测使用快速的CPU(速度快50%)和使用改进的IO缓存(IO服务时间预期提速15%)带来的影响。我们需要知道现有系统在不破坏服务水平的情况下是否可以处理负载。如果服务水平将被破坏,我们必须提供多种解决方案来降低风险。如果服务水平将很容易得到满足,我们建议削减硬件,以帮助降低硬件成本和任何相关的软件许可成本。对我们来说,这是一个例行练习,且我们有足够的历史性能数据。哪个模型是最合适的呢?

当有人谈论服务水平的破坏行为时,你应该马上想到高风险,应该使用更高精度的模型。要想知道什么时候服务水平将被破坏,通常需要知道响应时间的变化。虽然我们对响应时间何时开始陡升(利用率在80%左右)有一个总体思路,但那可能还是不够。所以要小心。让我们假设,这将需要进行验证,我们需要预测利用率和响应时间的变化。

因为必须预测利用率和响应时间的变化,我们的大多数预测模型被立即取消资格。简单的数学、比例模型甚至回归分析都是行不通的。回归分析可以提供高精度的预测,但它不会提供我们需要的响应时间的细节。此外,只有基本预测公式和排队论可以同时处理如服务时间和在硬件配置上的变化(例如,改变CPU的数量)这样的输入。

看来,我们使用排队论做预测既有时间又有所需要的数据。这将使我们能够高精度地回答所研究的问题。虽然我们很可能使用基本的预测公式,但将精度提高一个档次需要额外的努力,特别是考虑到预测的重要性,这种努力将是非常值得的。在本章后面的3.3节中我们将讨论一些提高精度的改变/策略。

在此刻,你应该有一个清醒的认识,有许多预测模型可供你选择。我也希望你在为特定的预测选择最好的一种或多种模型上越来越熟练。不要期望在做一个预测模型的选择时会感觉非常自如,除非你已经做过好几次了。因为预测模型的选择有很多的复杂性,而且每一个预测的情况都稍有不同。在你感觉得心应手之前需要经历一段时间和掌握一些经验。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:3.2.1 要问的问题
下一篇:3.3 基线选择
相关文章
图文推荐
排行
热门
最新书评
特别推荐

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

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