程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> A DB2 Performance Tuning Roadmap

A DB2 Performance Tuning Roadmap

編輯:關於PHP編程

A DB2 Performance Tuning Roadmap



 庖丁為文惠君解牛,手之所觸,肩之所倚,足之所履,膝之所踦,砉然向然,奏刀騞然,莫不中音。合於《桑林》之舞,乃中《經首》之會。 文惠君曰:“嘻,善哉!技蓋至此乎?

說起DB2,大家可能比較陌生,更多的是對oracle,SQLserver,MYSQL以及大行其道的NOSQL如MongoDB,REDIS等了解的比較多。筆者由於工作的原因對DB2接觸的比較多,在這裡談一下自己的理解。由於筆者自身的局限性,對很多問題的描述可能准確,歡迎指正。 大家都知道MYSQL是單進程多線程,ORACLE在Window和linux上表現不同,windows下是單進程多線程,linux下是多進程方式提供服務。DB2也是以類似多地址空間(與進程相類似)的方式提供服務。

 Architected around the address space Conceptually, DB2 is a relational database management system. Physically, DB2 is an amalgamation of address spaces and intersystem communication links that, when adequately tied together, provide the services of a relational database management system.

原文

DB2 的這種進程處理方式,OVERHEAD便是進程間通信,引入了很多的子線程的分類,如CICS THREAD,ALLIED ADDRESS SPACE,DATABASE ACCESS THREAD,這些概念可能通過進程間通信這種方式來理解就比較好接受了,這也引入了所謂的不同的CALL ATTACHEMENT FACILITY的概念,其實都是由於DB2對外開放的不同API而已。 關於DB2 cluster的工作方式更多的是DB2 DATA SHARING,可以參考

  1. 淺析DB2 中的DBMS CLUSTER技術
  2. DBMS-DSG初探之XCF
  3. DSG CF 之cache 漫談
  4. DSG CF 之cache 漫談1
  5. DSG CF 之cache 漫談2
  6. DB2 Buffer 原理簡介
  7. 數據庫設計的理論依據

OUTLOOK OF PERFORMANCE

本篇內容是在寫完系統調優的基本功後,在次進行的梳理,同時增加了應用調優的部分。知識的學習本身也是一個循序漸進的過程。 首先我們需要明確性能的概念,何為性能,它對應的英文單詞為performance,維基百科給出的解釋--- 計算機完成某項有用的工作所消耗的時間與資源WIKI。所以好的高性能,也就意味著使用更少的資源,更快的完成工作。 性能的目標是沒有蛀牙,哈哈

  1. realistic 即性能在當前的技術下可以實現,如交易平均響應時間0.1就是可以實現的,0.000001,NOT REALISTIC
  2. reasonable 合理的
  3. quantifiable 可以量化的如RATIO,PERCENTAGES,NUMBERS,而不是good,perfect,這種空洞的描
  4. measurable 可以度量的

根據國情,所有這些都是要滿足leader的需求為前提,指定上述目標後,就是monitor,看看當前的系統是否滿足上去要求,從而進行調優。monitor根據執行的頻度有三種:

  1. routine monitoring
  2. online/realtime event monitoring
  3. exception monitoring

其實DBA面對更多的是2,3所發現的問題,時間緊,任務重,如果可以規避還好,如果不能規避,需要實施緊急變更。但是如果monitor 1 基礎打得好,可以提前發現很多問題,將問題消滅在萌芽狀態。monitor 1 更多是收集性能信息,以及系統整體的運行情況。

總體指導思想

  1. TOP-DOWN TUNEING
  2. DEVIDE AND CONQUER
  3. 二八原則。花80%的時間解決20%的問題,帶來80%的收益,即最佳性價比
  4. 一個前提:當系統運行或是應用出現問題的時候,我們總是假定這是一個由量變到質變的過程[變更除外,這種情況下需要緊急回退],即我們總是假設系統或是應用在以前是正常的,我們需要一個benchmark.這就給我提供了一個思路,當你沒有思路時,你可以和歷史數據進行比較,從而發現問題
  5. 關於定性和定量的問題,相對來說,定性容易,定量有時候還是比較困難的
  6. 從管理的角度,調優是一個持續改進的過程,應該是一個閉環,即監控發現問題,分析問題,解決問題,而後繼續監控
  7. 一點體會: 其實調優本身也是一個資源配置的問題,在特定的場景之下,如何把有限的資源進行有效的配置,從而達到組織的目的。 整個組織目前擁有的資源,這裡只對計算機系統調優而言:

    1. CPU
    2. IO
    3. LOCKING
    4. STORAGE5. human resource 當然就是你了
    5. NETWORKING 可忽略
    6. SYSTEM HARDWARE & OTHER SOFTWARE SUCH AS CICS/ZOS/CFCC

影響這些resource的方式不外乎:

1. got enough 2. not enouth 3. too much 4. inefficient 5. what are the available controls? (fixes) 

兩大方向

系統調優 應用調優

系統調優

關於系統調優前面已經介紹過了--系統調優的基本功,這裡的任務就是如何在總結提煉.那篇文章介紹的更多內容其實對應的是routine monitor,

CICS性能數據收集

交易性能數據對應的SMF 類型為110,對應的分析工具CICS PA

SMF Type 110 (subtype0) — CICS Journal Record SMF Type 110 (subtype1) — CICS Monitoring Record SMF Type 110 (subtype2) — CICS Statistics Record 
DB2 性能數據收集

DB2 SMF 對應的SMF TYPE 為100,101,102,其中

SMF TYPE=100 DB2 SUBSYSTEM STATISTICSSMF TYPE=101 DB2 ACCOUNTING SMF TYPE=102 ALL OTHERE PERFORMANCE 

SMF TYPE=100 的表格如下

CLASSDATA COLLECTEDIFCID1Statistics data1, 2, 105,106, 202, 2252Installation-defined statistics record1523Deadlock, lock escalation, group buffer pool, data set,extension information, indications of long-running URs, and active log space shortages172, 196, 250, 258, 261, 262, 313, 330, 335, 3374DB2 exceptional conditions173,191-195, 203-210, 235, 236, 238, 267, 268, 343, 4025DB2 data sharing statistics record2546Storage usage details2257DRDA location statistics3658Data set I/O statistics199

SMF 本身的結構也是一個樹形層級結構,如果打算收取某一類型的trace,你需要關注三個方面,

  1. TRACE TYPE
  2. CLASS
  3. IFCID

這樣對應的收取trace的命令就很好理解了

START TRACE(S) CLASS() IFCID(172) DEST(SMF) ---TNODIS TRACESTOP TRACE(S) TNO(XX) recommand defualt trace:start trace(s) c(1,3,5,6,7,8) 
解讀stat

這裡首先介紹SMF TYPE=100,由上面的表格,我們可以了解到stat報表包括的大體內容,下面我們逐一介紹,讓你對報表有一個大體的了解,有時候自下而上解決不了問題的時候,stat就是一個關鍵的突破口。 STATISTICS 性能數據收取的時間顆粒度granularity為1分鐘,相比較SMF TYPE101,102,它的量是很少。 考慮解讀性能數據的重要性,後續單獨寫一篇來介紹,你放心,絕對值得寫一章。 在結束准備工作之前,在向你介紹一個性能數據在一個顆粒度內是如何計數的,主要分為3類:

  1. SNOPSHOT VALUE--current value 即性能數據收取時間時對應的實時值
  2. HWK --HIGH WATER MARK 對應的時間顆粒度內的最高水位值
  3. ACCUMULATE VALUE--累加值,時間顆粒度內一個逐漸累加計數值作者注明確這一點對性能數據解讀很重要。
16年第一篇,希望有一個好彩頭

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved