Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Performance Data: What is Important and How Do I Make Sense of It Adam Backman A Nice Guy, DBAppraise.

Similar presentations


Presentation on theme: "1 Performance Data: What is Important and How Do I Make Sense of It Adam Backman A Nice Guy, DBAppraise."— Presentation transcript:

1 1 Performance Data: What is Important and How Do I Make Sense of It Adam Backman A Nice Guy, DBAppraise

2 2 Shameless Plug DBAppraise is an OpenEdge specific database monitoring service DBAppraise provides our clients with the ability to offload as much of the DBA function as they need Customized to your environment Backed by some of the top OpenEdge DBAs in the world

3 3 A little note All the information in the world is worth nothing if you cannot interpret it.

4 4 Agenda Why do you need a monitor? Monitoring Alternatives What Are VSTs? ProTop Basic Capabilities Advanced Features

5 5 Why monitor? Performance matters Your workload changes – Number of users – Number of Records Application changes Change in the weather

6 6 Monitoring You need to document where you are now Change one thing at a time so you know the affect of changes Document what constitutes “good” performance Keeping historical records allows for targeted future planning

7 7 Monitoring Tools/Services Free – Glance – top – promon – ProTop Not Free – OpenEdge Management (product) – DBAppraise (service)

8 8 What Are VSTs? V irtual S ystem T ables A 4GL View of Progress Data Structures (the same as those shown in PROMON.) No Performance Impact (mostly) Primarily Read-Only Knowing what to use can be a challenge

9 9 Some VST Quirks Updateable: – _startup._spin – Private buffers Table & Index Ranges: -tablebase, -tablerangesize -indexbase, -indexrangesize – Table & Index Window can be reset! Quirky Keys: – _myconnection… – _tablestat & _indexstat

10 10

11 11 ProTop Basic Capabilities Summary Data Blocked Clients & Open Transactions Table & Index Activity User Activity Storage Area Capacity Estimating Big B Latches & Resources Clients & Servers

12 12 Summary Data 11:32:52 ProTop xvi -- Progress Database Monitor 07/05/05 Sample sports [/db/sports] Rate Hit Ratio: 182:1 195:1 Commits: 149 195 Sessions: 2057 Miss% : 0.549% 0.512% Latch Waits: 13 16 Local: 953 Hit% : 99.45% 99.48% Tot/Mod Bufs: 60002 3167 Remote: 956 Log Reads: 76342 80927 Evict Bufs: 2 1 Batch: 1045 OS Reads: 419 414 Lock Table: 1516 3 Server: 97 Rec Reads: 23789 23619 LkHWM|OldTrx: 1392 00:00 Other: 51 Log/Rec: 3.2091 3.4264 Old/Curr BI: 54 54 TRX: 26 Area Full: 1 98.60% After Image: Disabled Blocked: 0

13 13 Blocked Sessions Usr Name Note ----- ------------ ---------------------------------- 24 tom REC XQH 102 [Order] julia

14 14 Record Locks Nice to know Generally, expensive _Lock is not indexed

15 15 Locked Records for each _Lock no-lock while _Lock-usr <> ?: if _Lock-recid = _Connect-wait1 then do: find _file where _file._file-num = _Lock-table no-error. bxtbl = _file._file-name. end. if _Lock-usr = _Connect-usr then bxwait = bxwait + “ “ + _Lock-flags. else bxque = bxque + " " + _Lock-name. end. bxnote = bxtbl + bxwait + bxque.

16 16 Open Transactions Usr Name TRX Num BI Clstr Start Trx Stat Duration Wait ---- ----- -------- -------- -------- -------- -------- ---------- 9 root 2432897 1024 15:39:05 ACTIVE 00:00:01 -- 29440 20 root 2432896 - ALLOCATE 00:00:00 -- 20115 5 root 2432898 1024 15:39:06 ACTIVE 00:00:00 -- 21952 7 root 2432899 1024 15:39:06 ACTIVE 00:00:00 -- 19040 23 julia 2418661 - ALLOCATE 00:00:00 -- 0 22 tom 2417938 - ALLOCATE 00:00:00 -- 0

17 17 Table Activity Table Statistics Tbl# Table Name Create Read Update Delete ---- ---------------- --------- --------- --------- --------- 4 OrderLine 0 444 11 0 18 Order 0 98 1 0 24 POLine 0 92 1 0 23 PurchaseOrder 0 42 1 0 21 Bin 0 5 0 0 2 Customer 0 4 0 0 1 Invoice 0 1 0 0 10 Employee 0 0 0 0 13 Family 0 0 0 0

18 18 Table Stats /** This does NOT work if –tablebase <> 1!!! find _File no-lock where _File._File-num = p_tbl no-error. find _TableStat no-lock where _TableStat-id = p_tbl no-error. display p_tbl _file-num _TableStat-id. **/ /*** use the following: ***/ find _TableStat no-lock where _TableStat-id = p_tbl no-error. find _File no-lock where _File._File-num = _TableStat-id no-error. display p_tbl _file-num _TableStat-id.

19 19 Index Activity Index Statistics Idx# Index Name Create Read Split Delete BlkDel ---- --------------- -- ------ ------ ------ ------ ------ 22 orderline PU 0 44 0 0 0 12 CustNum PU 0 3 0 0 0 2 _File/Field PU 0 0 0 0 0 3 _Field-Name U 0 0 0 0 0 5 _File/Index PU 0 0 0 0 0

20 20 User IO Activity UIO Usr Name Flags PID DB Access OS Rd OS Wr Hit% ---- ------- ----- ------ --------- ----- ----- ------- 13 tom SB 13590 2266 200 1 91.13% 10 jami SB 13584 190 6 1 97.10% 16 julia SB 13596 185 6 1 97.03% 17 peter SB 13598 181 5 1 97.07% 15 emily SB 13594 177 5 1 97.12% 11 tiger SB* 13586 166 4 0 97.58% 14 tucker SB 13592 159 5 1 97.10% 19 granite SB 13602 146 1 0 99.25% 7 astro SB 13578 145 4 1 97.16%

21 21 Estimating Big B Big B GuessTimator Pct Big B % db Size Hit:1 Miss% Hit% OS Rd ----- --------- --------- ----- ------ ------- ----- 10% 6000 0.124% 30 3.306% 96.694% 1343 25% 15001 0.311% 48 2.091% 97.909% 849 50% 30001 0.622% 68 1.479% 98.521% 601 100% 60002 1.243% 96 1.046% 98.954% 425 <= 150% 90003 1.865% 117 0.854% 99.146% 347 200% 120004 2.486% 135 0.739% 99.261% 300 400% 240008 4.973% 191 0.523% 99.477% 213

22 22 Big B MissPct = 100 * ( 1 – ( LogRd – OSRd ) / LogRd )). HitPct = 100 – MissPct. OSRd = LogRd * ( MissPct / 100 ). m2 = m1 * exp(( b1 / b2 ), 0.5 ).

23 23 Latch Waits Id Latch Requests Waits Lock% --- -------------------- ---------- ---------- ------- 28 MTL_BF4 5540 33 99.40% 17 MTL_BHT 4205 106 97.49% 21 MTL_LRU 4154 55 98.68% 10 MTL_LHT 1800 24 98.65% 15 MTL_LKF 1798 0 100.00% 26 MTL_BF2 1218 6 99.48% 27 MTL_BF3 1184 10 99.13% 25 MTL_BF1 1150 10 99.16% 4 MTL_OM 913 4 99.60%

24 24 Resource Waits Id Resource Locks Waits Lock% --- -------------------- ---------- ---------- ------- 10 DB Buf S Lock 2661 0 100.00% 6 Record Get 658 0 100.00% 7 DB Buf Read 40 0 100.00% 2 Record Lock 21 0 100.00% 11 DB Buf X Lock 11 0 100.00% 19 TXE Share Lock 11 0 100.00% 8 DB Buf Write 3 0 100.00% 21 TXE Commit Lock 2 0 100.00% 1 Shared Memory 0 0 0.00% 3 Schema Lock 0 0 0.00%

25 25 Servers and Clients Servers Srv Type Port Con Max MRecv MSent RRecv RSent QSent TimeSlice --- ----- ----- --- --- ----- ----- ----- ----- ----- --------- 1 Login 7150 0 1 0 0 0 0 0 0 2 Auto 1026 10 55 0 0 0 0 0 0 3 Auto 1027 10 55 23 13 0 6 10 86 Server IO Srv Type Port Con Max DB Access OS Rd OS Wr Hit% --- ----- ---- --- --- --------- ----- ------ ------- 19 Auto 1043 10 55 5041 2 0 99.96% 20 Auto 1044 10 55 1348 1 0 99.96% 18 Auto 1042 10 55 157 1 0 99.51% 16 Auto 1040 10 55 42 1 0 98.70%

26 26 Storage Area Capacity Area Statistics Area Area Name Blocks Hi Water Free %Used RPB Note ---- ------------- ------- -------- ------- ------- --- --------- 1 Control Area 31 9 22 29.03% 64 3 Primary Recovery 31998 30720 1278 96.01% 1 6 Schema Area 11711 10688 1023 91.26% 64 i(25) ** 7 Cust_Dat 895975 602498 293477 67.24% 64 t(48) 8 Cust_Idx 191991 115270 76721 60.04% 64 i(157) 9 Sales_Dat 1311962 1103066 208896 84.08% 64 t(41) 10 Sales_Idx 271986 184401 87585 67.80% 64 i(125)

27 27 Storage Area Capacity for each _AreaStatus no-lock, _Area no-lock where _Area._Area-num = _AreaStatus._AreaStatus-Areanum: bfree = _AreaStatus-Totblocks - _AreaStatus-Hiwater. if ( _AreaStatus-Freenum <> ? ) then bfree = bfree + _AreaStatus-Freenum. if bfree = ? then bfree = _AreaStatus-totblocks. used = (( _AreaStatus-totblocks - bfree) / _AreaStatus-totblocks ) * 100. end.

28 28 Storage Area Contents for each _storageobject no-lock where _storageobject._area-number = xid and _storageobject._object-num > 0 and _storageobject._object-associate > 0: if _storageobject._object-type = 1 then so_tbl = so_tbl + 1. else if _storageobject._object-type = 2 then so_idx = so_idx + 1. end.

29 29 Balancing IO Database File IO Id Extent Name Mode Blksz Reads Writes Extends ---- ------------------- -------- ----- ------ ------- -------- 12 sports2000_11.d1 BUFIO 1024 28 3 0 6 sports2000_8.d1 BUFIO 1024 9 0 0 13 sports2000_11.d2 BOTHIO 1024 6 0 0 1 sports2000.db BOTHIO 1024 2 0 0 3 sports2000.d1 BOTHIO 1024 1 0 0 4 sports2000_7.d1 BUFIO 1024 1 0 0 8 sports2000_9.d1 BUFIO 1024 1 0 0 10 sports2000_10.d1 BUFIO 1024 1 0 0 2 sports2000.b1 UNBUFIO 8192 0 1 0 9 sports2000_9.d2 BOTHIO 1024 0 0 0

30 30 ProTop Architecture VST Based Multi-Platform – UNIX Character – HTML – Windows GUI Using Publish & Subscribe

31 31 DBAppraise It is a service not a product Have us cover as much of the DBA function as you want 24x7 access to OpenEdge expertise Please visit DBAppraise.com for more information and a demo

32 32 Q uestions


Download ppt "1 Performance Data: What is Important and How Do I Make Sense of It Adam Backman A Nice Guy, DBAppraise."

Similar presentations


Ads by Google