科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道DBA实验室:Oracle性能预测的重要性

DBA实验室:Oracle性能预测的重要性

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

基本上来说,预测Oracle的性能对每一个数据库管理员的理解和工作都具有绝对的重要性。当性能开始下降的时候,是数据库管理员对其进行审查,是数据库管理员来进行修复。

作者:中国IT实验室 来源:中国IT实验室 2007年10月4日

关键字: 性能预测 ORACLE DBA

  • 评论
  • 分享微博
  • 分享邮件

  基本上来说,预测Oracle的性能对每一个数据库管理员的理解和工作都具有绝对的重要性。当性能开始下降的时候,是数据库管理员对其进行审查,是数据库管理员来进行修复。是数据库管理员最熟悉数据库服务器的知识,所以他们难道不能对性能进行预测吗?当系统要添加一些新的用户的时候,最快询问的就是数据库管理员,“这不会出现问题,是吗?”因此,数据库管理员需要有快速预测性能的能力。不甚精确的预测可以飞快的完成,这是开始预测Oracle性能的一个很好的方式。
  
  我们想要预测的一个关键点就是利用率、队列长度,以及响应时间。仅仅通过上述的三个因素,作为数据库管理员,你可以执行各种类型的较低精度的what-if 场景。要得到价值,你基本上需要一下的三项内容:
  
  一些简单的公式
  
  一些基本的操作系统统计数字
  
  一些基本的Oracle统计数字
  
  在你开始利用这些公式之前,理解一些概念并认识它们的标记是很重要的。
  
  S:为一个工作单元服务的时间。它通常是服务时间或者服务需求。是CPU为一个单独的事务服务的时间长度。例如,每个事务1.5秒,或者是1.5 sec/trx 。获得Oracle系统的这个数值的最好方式就是计算。
  
  U:利用率或者CPU繁忙度。一般来说,这个数是一个百分数,也是它在这个公式中的出现方式。例如,在公式中,它应该是类似75% 或者 0.75这样的数字,而不是75。收集CPU利用率的一个简单方式就是运行sar ?u 60 1。这将给你在过去的60秒中CPU的平均利用率。
  
  λ:工作到达率。这是每个单元时间内进入系统的事务的数量(例如,每秒150个事务,或者150 trx/sec)。当使用Oracle工作的时候,有许多可能的统计数字可以用来计算“事务”到达率。使用v$sysstat 收集到的一般的统计数字是针对逻辑读取、块交换、物理写入、用户调用、登录、执行、用户提交,以及用户回滚。你还可以根据你的经验将上述操作进行混和和匹配。在这篇文章里,我们将会简单使用地使用用户调用。
  
  Q:队列长度。这是正在等待服务的事务的数量。其中排除了当前正在被服务的事务的数量。我们将会导出这个数值。
  
  M:CPU的数量。你可以从cpu_count 这个环境参数中得到数值。
  
  计算平均数的CPU公式,如下所示:
  
  U = ( S λ ) / M (1)
  
  R = S / (1-U) (2)
  
  Q = R λ ? M (3)
  
  在我们采用现实生活中的例子之前,让我们先通过以下的理论实验来检查一下公式。
  
  理论实验1:使用公式(1),如果1CPU的利用率是50%,那么用2个CPU就是25%。公式的结果也是如此。因为你已经计算出来了,可测量性就不再予以考虑。
  
  理论实验2:使用公式(1),如果我们增加到达率,CPU的利用率也应该上升。
  
  理论实验3:使用公式(1),如果我们使用更快的CPU,那么服务时间应该减少,那么利用率应该下降。
  
  理论实验4:使用公式(2),如果利用率上升,分母就下降,应该导致响应时间增加。
  
  理论实验5:使用公式(3),如果CPU的数量增加,那么队列长度就应该减少。
  
  理论实验6:使用公式(3),如果到达率上升,队列长度就应该上升。
  
  现在,你可以对公式有些感觉,并认为它是争取的了吧,下面让我们看看实际的例子。
  
  例子1:让我们说一下在过去的60秒中,你在单CPU的Linux机器上收集到的CPU平均利用率和用户调用的数量。你发现平均利用率是65%,Oracle处理了750个用户调用。每秒钟用户调用的数量就是12.5(即,750/60 = 12.5)。
  
  因此
  
  S = 0.052 sec/call ; U = ( S λ ) / M ; 0.65 = ( S * 12.500 ) / 1
  
  R = 0.149 sec/call ; R = S / (1-U) ; R = 0.052 / ( 1 ? 0.65 )
  
  Q = 0.863 calls ; Q = R λ ? M ; Q = ( 0.149 sec/call * 12.5 calls/sec ) ? 1
  
  我们能够立即用到的惟一一个数字就是队列长度。平均来说,大概有一个等待CPU周期的进程。这对于性能和用户来说是不好的。如果用户对性能不满意的话也没什么惊讶的。如果他们认为性能还不错,那么现在就开始为未来做一个计划是一个不错的主意。
  
  当我们使用不同的配置或者工作场景来重新计算响应时间和服务时间会更有用。例如,我们考虑一下当你的工作量每15分钟会增加20%的情况。当响应时间明显增加的时候,会经过多少个15分钟?第二个例子中,我们将会看到这个效果。
  
  例子2:我们假设目前的性能是可以接受的,但是数据库管理员不知道这种情况将持续多久。假设工作量每15分钟都会增加20%,使用上面描述的情景作为我们的基本线,并使用上面的三个基本公式,下面是每15分钟的情况。
  
  我们可以立即看到在第三个15分钟,利用率超过了100%(即,104%)。这导致饿了不稳定的系统,因为队列一直在增加。响应时间和队列长度计算也都会受到负面影响,显示了现在的系统很不稳定。
  
  我们回答下面这个问题,“系统什么时候会崩溃?”,答案类似“在第二个和第三个15分钟之间的某个时间。”然而,这是个非常明显并且非常乐观的具有高风险的答案。下面让我们挖掘得更深一些。
  
  当利用率达到100%之前性能下降就发生了,正如响应时间和队列长度的变化显示的。所以,当系统在第二个15分钟中陷入技术性活动的时候,响应时间已经显著增加了,并且用户毫无疑问会感到不高兴。基于以上的情况,如果用户对当前的性能表示满意的话,那么他们很有可能不会在下一刻仍然感到满意。响应时间差不多增加一倍,队列长度也会达到灾难性的2.55!
  
  那么选项是什么?在这一点上,有许多的选项,但是我们在另一篇文章中讨论这些问题。
  
  在预测之前清楚地理解精确需求和可获得的准确度是重要的。使用上面描述的方法来获得的准确度是非常低的。这是因为以下几个原因,其中的几个愿意就是:只收集了一个数据样本,预测是无效的,工作量没有仔细地描述,并且我们的模型只考虑了CPU子系统。当需要做出更加精确的预测的时候,可以用到HoriZone 这样的产品。但是许多时候,一个快速但是准确度较低的预测是必需的。在这种情况下,你可以使用上面列出的公式对当前环境有一个大概的概念。
  
  正如你看到的,仅仅利用上面几个基本公式和一些性能数据,可以做出有用的预测结果结果。性能预测将会是扩展到数据库管理员的专业领域的预测领域,可以用来回答那些我们在星期五下午的4点半被问到的刁钻的问题,还可以帮助预见到糟糕的性能。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亜顒㈡い鎰矙閺屻劑鎮㈤崫鍕戙垽鏌i鐕佹疁妤犵偞鐗曡彁妞ゆ巻鍋撳┑陇鍋愮槐鎺楀箛椤撗勭杹闂佸搫鐭夌换婵嗙暦閸洖鐓涘ù锝夋敱閻繘姊绘担鍛婃儓妞ゆ垵鎳橀弻濠囨晲婢跺﹨鎽曢梺鍝勬祫缁辨洟鎮块埀顒勬煟鎼搭垳绉靛ù婊呭仦缁傛帡鎮欓鍌滅槇濠电偛鐗嗛悘婵嬫倶閻樼粯鐓忛柛顐ゅ枑閸婃劗鈧鍠栭…宄邦嚕閹绢喗鏅柛鏇ㄥ幗濠㈡垿姊虹拠鎻掑毐缂傚秴妫欑粋宥夊冀椤撶偟锛涢梺瑙勫礃椤曆囧礃閳ь剙顪冮妶鍡樺蔼闁告柨娴风划娆掔疀濞戞瑢鎷洪柣鐘充航閸斿苯鈻嶉幇鐗堢厵闁告垯鍊栫€氾拷

    婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繘鏌i幋婵愭綗闁逞屽墮閸婂湱绮嬮幒鏂哄亾閿濆簼绨介柛鏃撶畱椤啴濡堕崱妤€娼戦梺绋款儐閹瑰洭寮诲☉銏″亜闂佸灝顑呮禒鎾⒑缁洘鏉归柛瀣尭椤啴濡堕崱妤€娼戦梺绋款儐閹稿墽妲愰幘鎰佸悑闁告粌鍟抽崥顐⑽旈悩闈涗粶闁哥噥鍋夐悘鎺楁煟閻樺弶绌块悘蹇旂懅缁綁鎮欓悜妯锋嫼閻熸粎澧楃敮鎺撶娴煎瓨鐓曢柟鎯ь嚟濞叉挳鏌熼钘夊姢閻撱倖銇勮箛鎾村櫝闁归攱妞藉濠氬磼濮樺崬顤€闂佸憡顨嗗ú鐔风暦婵傜ǹ唯闁靛/鍕弰濠电姷鏁告慨鎾晝閵堝洠鍋撳鐓庡籍鐎规洩缍€缁犳盯寮崒婊呮濠电姷鏁告慨鎾磹缂佹ɑ娅犳繛鎴欏灪閻撴洟鎮楅敐鍐ㄥ濠碘€茬矙閺屾洟宕惰椤忣厾鈧鍠曠划娆愪繆濮濆矈妲归梺閫炲苯澧悽顖ょ節瀵鎮㈤崗鐓庣檮婵犮垼娉涢敃銉モ枔婵犳碍鈷戦柛婵嗗閻忛亶鏌涢悩宕囧⒌妤犵偛鍟オ浼村醇濠靛牆骞愰梻浣呵归張顒傜矙閹惧箍浜归悗锝庡枟閻撶喖骞栧ǎ顒€鈧倕岣块幇顓犵闁告瑥顥㈤鍫熷仼婵犻潧鐗忛惌娆撴偣閹帒濡芥繛鍫ョ畺濮婃椽宕滈幓鎺嶇凹濠电偛寮堕悧鐘诲箖閳ユ枼妲堥柕蹇ョ磿閸橀亶鏌h箛鏇炰粶濠⒀傜矙閹瞼鈧綆鍋嗙粻楣冩煕椤愩倕鏋戦柛濠冨姈閹便劍绻濋崟顓炵闂佺懓鍢查幊鎰垝閻㈢鍋撻敐搴濈凹闁伙絼鍗冲缁樻媴鐟欏嫬浠╅梺鍛婃煥椤戝鐣烽敓鐘茬闁肩⒈鍓氬▓楣冩⒑闂堟稓绠為柛濠冩礋瀹曟﹢鍩€椤掆偓椤啴濡堕崱妤€顫囬梺绋块瀹曨剟鎯冮鍕拻闁稿本鐟ч崝宥夋倵缁楁稑鎳愰惌娆撴煙鐎电ǹ袥闁稿鎸搁~婵嬫偂鎼达紕鐫勯柣搴ゎ潐濞叉垿宕¢崘鑼殾闁告鍊i悢鍏尖拹闁归偊鍠氬▔鍧楁⒒閸屾瑧绐旀繛浣冲洦鍋嬮柛鈩冪☉缁犵娀骞栧ǎ顒€鐏柛娆忕箲閵囧嫰骞掗崱妞惧闂備礁鐤囬~澶愬垂閸ф鏄ラ柕澶嗘櫅楠炪垺淇婇悙鎻掆挃闁告垼顫夌换婵嬫偨闂堟刀鐐烘煕閵婏附銇濋柡浣割儔閺屟囨嚒閵堝懍娌繛锝呮搐閿曨亝淇婇崼鏇炲窛妞ゆ柨鍚嬮锟犳⒒娴e懙褰掝敄閸涙潙纾归柛锔诲幗瀹曞弶绻涢幋娆忕仼妤犵偑鍨烘穱濠囶敍濠垫劕娈紒鐐緲缁夊綊寮婚敐鍡樺劅闁靛骏绲介ˉ婵嗩渻閵堝繐顩柡浣筋嚙椤曪絿鎷犲顔兼倯闂佸壊鍋掗崑鍛搭敁閸ヮ剚鈷掑ù锝呮啞閸熺偤鏌熼幖浣虹暫鐎规洜澧楅幆鏃堚€﹂幋鐐存珨闂備焦瀵х换鍌炈囨禒瀣瀬闁糕剝銇滈埀顒佸笒椤繈顢楁繝鍌氼潬闂備焦妞块崢浠嬨€冮崱娆愬床婵炴垯鍨圭粻濠氭煛婢跺鐏╅柛鏂惧嵆濮婅櫣绮欏▎鎯у壉闂佸湱鎳撳ú顓烆嚕婵犳碍鏅查柛娑变簼椤秴鈹戦悙鍙夘棡闁告梹娲滄竟鏇㈠箮閼恒儮鎷洪梺鍛婄箓鐎氼厼锕㈤幍顔剧<閻庯綆鍋勯悘鎾煕閳哄啫浠辨鐐差儔閺佸啴鍩€椤掆偓椤斿繐鈹戦崶銉ょ盎闂佸搫娲ㄩ崑鐐哄闯濞差亝鐓冮悹鍥嚋閸旂喓绱掓潏銊﹀磳鐎规洘甯掗埢搴ㄥ箣濠靛棭鐎村┑锛勫亼閸婃垿宕濆畝鍕疇婵せ鍋撴鐐叉閻f繈宕熼銈忕床闂備胶绮崝娆忈缚瑜忕划濠囨晝閸屾稓鍘甸梺绋跨箺閸嬫劙寮冲鈧弻娑㈠棘鐠恒劎鍔梺璇″枤閸嬨倕鐣疯ぐ鎺濇晝闁绘ǹ浜惄搴ㄦ⒒娴e憡璐¢柛搴涘€濆畷褰掓偨閸撳弶鏅滈梺鍐叉惈閹冲繘宕愰崹顐e弿婵妫楁晶缁樹繆閹绘帞绉洪柡灞炬礋瀹曟儼顦叉い蹇e幘閳ь剚顔栭崰鏇犲垝濞嗘劒绻嗘慨婵嗙焾濡插ジ姊洪棃鈺冪シ闁稿骸纾Σ鎰板箻鐎涙ê顎撶紓浣圭☉椤戝懎鈻撻鐐╂斀闁宠棄妫楁禍婵堢磼鐠囪尙澧曟い鏇稻缁绘繂顫濋鐐扮盎缂備胶鍋撴刊鑺ャ仈閹间礁鐤鹃柨婵嗩槹閸嬧剝绻濇繝鍌氭殶閺佸牓姊虹拠鈥虫灍闁挎洏鍨介獮濠囨偐濞茬粯鏅㈤梺绋挎湰缁絿妲愰弻銉︹拺闁告繂瀚峰Σ鎼佹煟濡も偓鐎氭澘鐣峰┑鍥ㄥ劅闁挎繂娲g粭澶愭⒑缂佹ê濮夐柛搴涘€濋幃鈥斥槈閵忊€斥偓鍫曟煟閹邦垱纭剧悮姘舵⒑閸濄儱校闁挎洏鍨藉濠氬焺閸愨晛顎撻梺鑽ゅ枑濠㈡﹢锝為幒妤佸€甸悷娆忓缁€鍫ユ煕閻樺磭澧甸柕鍡曠椤粓鍩€椤掑嫬绠栭柍鍝勬噺閹偞銇勯幇鈺佲偓婵嬪箯婵犳碍鈷掗柛灞捐壘閳ь剙鍢查湁闁搞儜鍛闂佸壊鐓堥崑鍛村矗韫囨稒鐓欓柟顖涙緲琚氶梺鎶芥敱濮婂鍩€椤掆偓缁犲秹宕曢柆宓ュ洭顢涢悙鎻掔€梺绋跨灱閸嬬偤鎮¢姀鈥茬箚妞ゆ牗绮岄惃鎴犵磼鏉堛劌鍝洪柡灞诲妼閳规垿宕遍埡鍌傦妇绱撴担鎻掍壕闁诲函缍嗛崑浣圭濠婂牊鐓涚€广儱鍟俊鍧楁煃閽樺妲圭紒缁樼洴瀹曞ジ鎮㈤搹鍦帨婵犳鍠栭敃銊モ枍閿濆應妲堥柣銏⑶瑰婵囥亜閺傛儳瀚庨柍褜鍓氶崝鏇⑩€旈崘顔嘉ч幖绮光偓鑼嚬婵犵數鍋犵亸娆撳窗閺嵮呮殾婵炲樊浜滈悞鍨亜閹哄秹妾峰ù婊勭矒閺岀喖宕崟顒夋婵炲瓨绮撶粻鏍ь潖濞差亜绠伴幖娣灮閳规稒绻濈喊妯峰亾閾忣偅鎮欓柛妤呬憾閺岀喖鎮ч崼鐔哄嚒缂備緡鍋勭粔褰掑蓟濞戙埄鏁冮柨婵嗘川閻g厧顪冮妶鍡樺鞍婵$偠妫勯~蹇涙惞閸︻厾锛滃┑鈽嗗灠閹碱偊锝炲畝鍕€垫繛鍫濈仢濞呮﹢鏌涢幘瀵告噯闁诲繐鍟村娲川婵犱胶绻侀梺鍝ュУ瀹€绋跨暦閵忋倕绠瑰ù锝呭帨閹锋椽姊洪崨濠冨鞍鐟滄澘鍟粋宥嗙鐎n偆鍘遍柣搴秵娴滄粓顢旈銏$厵妞ゆ梹鏋婚懓鍧楁煛娴gǹ鏆g€规洘甯掗埥澶婎潩椤掆偓缁犵偤姊绘担绛嬪殭闁告垹鏅槐鐐哄幢濞戞ḿ锛涢梺绯曞墲钃辨繛鍛У閵囧嫰骞掗幋婵冨亾閼姐倕顥氬┑鍌氭啞閻撴洟鎮橀悙鎻掆挃闁宠棄顦辩槐鎺戭渻閿曗偓濞诧箓鎮″▎鎾寸厽闁绘柨鎲$欢鍙夈亜韫囷絽寮柡宀€鍠栭幃鈩冩償閵忥絿顢呴梻浣烘嚀瀵爼骞愰崘鑼殾闁绘柨鍚嬮ˉ鍫熺箾閹寸偟鎳勯柣婵撶節濮婂宕掑顑藉亾閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋為悧鐘汇€侀弴銏犖ч柛灞剧煯婢规洖鈹戦鐭亜鐣烽鍕偍閻庣數纭堕崑鎾舵喆閸曨剛顦ョ紓鍌氱Т閿曨亜顕f繝姘耿婵°倕锕ら幃鎴︽⒑閸涘﹣绶遍柛銊ф櫕濡叉劙鏌嗗鍡欏幗闁硅壈鎻槐鏇㈡偩椤撱垺鐓曢幖娣妺閹查箖鎸婂┑鍠㈠綊宕楅崗鑲╃▏缂佺偓宕樺▔鏇㈠焵椤掆偓缁犲秹宕曢柆宓ュ洦瀵肩€涙ê浜楅梺鍝勬储閸ㄦ椽鎮″☉銏$厱闁靛绲介崝姘攽閿涘嫬甯舵い顓″劵椤т線鏌涢妸銈呭祮婵犫偓娓氣偓濮婅櫣绱掑Ο鎾虫贡缁棃顢氶埀顒勩€侀弮鍫濋唶闁绘棁娅i弳銏ゆ⒒閸屾艾鈧兘鎮為敂閿亾缁楁稑鎳忓畷鏌ユ煕鐏炵虎鍤ゆ繛鎴烆焸閺冨牆宸濇い鎾跺Т楠炴帡姊绘担鍛婃儓婵炲眰鍨藉畷鐟懊洪鍛簵闂佸憡鍔︽禍婵嬪窗閹邦厾绡€濠电姴鍊绘晶鏇犵磼閳ь剟宕奸悢绋垮伎濠碘槅鍨辩€笛呮兜妤e啯鐓㈤柛鎰典簻閺嬫盯鏌$仦鐐缂佺粯绋栭ˇ鏌ユ倵濮樺崬鍘寸€规洘鍨挎俊鎼佸煛閸屾瀚肩紓鍌氬€烽悞锕傛晪婵犳鍠栧ú锕傚Φ閸曨垰鍗抽柕濞垮劚缁秹姊虹化鏇熸澓闁搞劏妫勯锝夊箻椤旂⒈娼婇梺鐐藉劜閺嬪ジ宕戦幘缁樺仺闁告稑锕﹂崣鍡椻攽閻樼粯娑ф俊顐n殜閸┾偓妞ゆ帒鍊归崵鈧梺瀹狀嚙缁夌懓鐣烽崼鏇炍╅柨婵嗗閻╁酣姊绘繝搴′簻婵炶濡囩划娆撳箛閺夎法鐤呮俊銈忕到閸燁垶鎮″☉銏″€堕柣鎰版涧娴滃墽绱掗埀顒傗偓锝庡厴閸嬫挾鎲撮崟顒傤槹婵炲瓨绮岄悥濂稿Υ娴e壊娼ㄩ柍褜鍓熼獮鍐閿涘嫰妾繝銏f硾椤﹁鲸寰勯敓锟�

    重磅专题
    往期文章
    最新文章