DB-7: OpenEdge® Database Performance Tuning Gus Björklund Wizard, Vice President Technology.
-
Upload
joe-upchurch -
Category
Documents
-
view
230 -
download
0
Transcript of DB-7: OpenEdge® Database Performance Tuning Gus Björklund Wizard, Vice President Technology.
DB-7: OpenEdge® Database Performance Tuning
Gus BjörklundWizard, Vice President Technology
© 2006 Progress Software Corporation2DB-7: OpenEdge Database Performance Tuning
Topics
Easy Stuff: The Basics Disk Layout Esoterica
© 2006 Progress Software Corporation3DB-7: OpenEdge Database Performance Tuning
First Things First
>> probkup foo>
© 2006 Progress Software Corporation4DB-7: OpenEdge Database Performance Tuning
“Out of the Box” Performance
>> proserve foo>
© 2006 Progress Software Corporation5DB-7: OpenEdge Database Performance Tuning
“Out of the box” Performance
30 00
100200300400500600700800
no tuning simple tuning
thro
ugh
put
(tps)
© 2006 Progress Software Corporation6DB-7: OpenEdge Database Performance Tuning
“Nine Easy Pieces” for Better Results
© 2006 Progress Software Corporation7DB-7: OpenEdge Database Performance Tuning
1: Buffer Pool Size
>> proserve foo -B 32000>
© 2006 Progress Software Corporation8DB-7: OpenEdge Database Performance Tuning
2: Spinlock retry count
>> proserve foo -B 32000 -spin 50000>
© 2006 Progress Software Corporation9DB-7: OpenEdge Database Performance Tuning
3: Start BI Log Writer (BIW)
>> proserve foo -B 32000 -spin 50000> probiw foo>
© 2006 Progress Software Corporation10DB-7: OpenEdge Database Performance Tuning
4: Start Async Page Writer (APW)
>> proserve foo -B 32000 -spin 50000> probiw foo> proapw foo> proapw foo>
© 2006 Progress Software Corporation11DB-7: OpenEdge Database Performance Tuning
5: Increase BI Log Block Size
>> proutil foo -C truncate bi \> -biblocksize 8> proserve foo -B 32000 -spin 50000> probiw foo> proapw foo> proapw foo>
© 2006 Progress Software Corporation12DB-7: OpenEdge Database Performance Tuning
6: Increase BI Log Cluster Size
>> proutil foo -C truncate bi \> -biblocksize 8 -bi 4096> proserve foo -B 32000 -spin 50000> probiw foo> proapw foo> proapw foo>
© 2006 Progress Software Corporation13DB-7: OpenEdge Database Performance Tuning
7: Add BI Log buffers
>> proutil foo -C truncate bi \> -biblocksize 8 -bi 4096> proserve foo -B 32000 -spin 50000 \> -bibufs 25> probiw foo> proapw foo> proapw foo>
© 2006 Progress Software Corporation14DB-7: OpenEdge Database Performance Tuning
8: Initial Database Layout
d "Schema Area" /users/gus/atm.d1d "atm":7,64;512 /users/gus/atm_7.d1 f 2000000d "atm":7,64;512 /users/gus/atm_7.d2 f 2000000d "atm":7,64;512 /users/gus/atm_7.d3 f 2000000d "atm":7,64;512 /users/gus/atm_7.d4 f 2000000d "atm":7,64;512 /users/gus/atm_7.d5 f 2000000d "atm":7,64;512 /users/gus/atm_7.d6 f 2000000d "atm":7,64;512 /users/gus/atm_7.d7b /users/gus/atm.b1
© 2006 Progress Software Corporation15DB-7: OpenEdge Database Performance Tuning
8: Move Data Extents to Striped Array
d "Schema Area" /users/gus/atm.d1d "atm":7,64;512 /array/atm_7.d1 f 2000000d "atm":7,64;512 /array/atm_7.d2 f 2000000d "atm":7,64;512 /array/atm_7.d3 f 2000000d "atm":7,64;512 /array/atm_7.d4 f 2000000d "atm":7,64;512 /array/atm_7.d5 f 2000000d "atm":7,64;512 /array/atm_7.d6 f 2000000d "atm":7,64;512 /array/atm_7.d7b /users/gus/atm.b1
© 2006 Progress Software Corporation16DB-7: OpenEdge Database Performance Tuning
9: BI Log On Separate Disk
d "Schema Area" /users/gus/atm.d1d "atm":7,64;512 /array/atm_7.d1 f 2000000d "atm":7,64;512 /array/atm_7.d2 f 2000000d "atm":7,64;512 /array/atm_7.d3 f 2000000d "atm":7,64;512 /array/atm_7.d4 f 2000000d "atm":7,64;512 /array/atm_7.d5 f 2000000d "atm":7,64;512 /array/atm_7.d6 f 2000000d "atm":7,64;512 /array/atm_7.d7b /bidisk/atm.b1
© 2006 Progress Software Corporation17DB-7: OpenEdge Database Performance Tuning
Can you predict the results ?
© 2006 Progress Software Corporation18DB-7: OpenEdge Database Performance Tuning
Now Our Results Are
30
581
0100200300400500600700800
no tuning simple tuning
thro
ugh
put
(tps)
© 2006 Progress Software Corporation19DB-7: OpenEdge Database Performance Tuning
Effect of Tuning -spin
133 120
436
680 679
0100200300400500600700800
spin setting
thro
ugh
put
(tps)
© 2006 Progress Software Corporation20DB-7: OpenEdge Database Performance Tuning
Effect of Tuning -B
260295
348 332
050
100150200250300350400450500
32,000 64,000 128,000 256,000
-B setting
thro
ughp
ut (t
ps)
© 2006 Progress Software Corporation21DB-7: OpenEdge Database Performance Tuning
Disk Layout
© 2006 Progress Software Corporation22DB-7: OpenEdge Database Performance Tuning
About disks
Inexpensive !! One drive can do only one thing at a time
• Many smaller drives better than one large
15,000 rpm drives SCSI still better than SATA II Desktop drives rated 8 hours on, 16 off Avoid cheesy controllers Spares
© 2006 Progress Software Corporation23DB-7: OpenEdge Database Performance Tuning
Multiple Disk Drives
© 2006 Progress Software Corporation24DB-7: OpenEdge Database Performance Tuning
Stripe and Mirror
© 2006 Progress Software Corporation25DB-7: OpenEdge Database Performance Tuning
Put BI Log on own disk
© 2006 Progress Software Corporation26DB-7: OpenEdge Database Performance Tuning
Use Type II Data Areas
© 2006 Progress Software Corporation27DB-7: OpenEdge Database Performance Tuning
Type I vs Type II Areas
100
140
020406080
100120140160180200
Type I DataArea
Type II DataArea
Relative Performance
thro
ugh
put
(perc
ent)
© 2006 Progress Software Corporation28DB-7: OpenEdge Database Performance Tuning
Esoterica
© 2006 Progress Software Corporation29DB-7: OpenEdge Database Performance Tuning
Networking
Raise message size (-Mm) to 16k Use Gigabit Ethernet Configure Ethernet for FDX Multiple brokers
• One for 4GL, one for SQL
• Others
Raise max servers (-Mn) and (-Mpb) Lower clients per server (-Ma)
© 2006 Progress Software Corporation30DB-7: OpenEdge Database Performance Tuning
Temporary files (-T)
Local drives, not on network Spread users over multiple disks
© 2006 Progress Software Corporation31DB-7: OpenEdge Database Performance Tuning
Use Shared Procedure Libraries
One copy of r-code for many users Use saved memory for other things
• like higher -B
All sharers have to be on same machine• Don’t need on client machines
© 2006 Progress Software Corporation32DB-7: OpenEdge Database Performance Tuning
Creating Records
Template holds default column values Creating a record makes a copy of template
• CREATE cust
Fill in all column values immediately• Use one ASSIGN
• Avoids an update later
• Avoids fragmentation if default record is very small
© 2006 Progress Software Corporation33DB-7: OpenEdge Database Performance Tuning
Linux File Systems
292313
267
348
0
50
100
150
200
250
300
350
400
ext3 JFS XFS ReiserFS
thro
ug
hp
ut
(tp
s)
ReiserFS results wildly erratic - don’t use !
© 2006 Progress Software Corporation34DB-7: OpenEdge Database Performance Tuning
Other filesystems
Operating system File system
Solaris VxFS or UFS
AIX JFS or JFS2
HP-UX NOT HFS
Windoze NTFS
Linux ext3, XFS, JFS
© 2006 Progress Software Corporation35DB-7: OpenEdge Database Performance Tuning
Windows Tips (part 1)
Remove crapware• use Ad-Aware or Spybot S&D
• use Firefox, NOT IE
Turn off• services you don’t need
– http://majorgeeks.com/page.php?id=12
• startup items you don’t need
Black screensaver only Get rid of Office (at least indexer)
© 2006 Progress Software Corporation36DB-7: OpenEdge Database Performance Tuning
Windows Tips (part 2)
NTFS filesystem• Never FAT-32 or FAT-16
Increase NTFS cluster size• format <drive>:/fs:ntfs /A:8k
Turn off• short filenames
• file sharing
• virus scanner !
• all GUI decorations
“Maximize Throughput for Network Applications”
© 2006 Progress Software Corporation37DB-7: OpenEdge Database Performance Tuning
SQL Tips
Add more indexes Run UPDATE STATISTICS Use ODBC and JDBC API’s well
• See DataDirect.com/developerfor technical papers
Upgrade to 10.1
© 2006 Progress Software Corporation38DB-7: OpenEdge Database Performance Tuning
More Esoterica
Buy more memory - cheapest way to improve Use 64-bit OpenEdge Mount filesystems with noatime Lock shared memory (-pinshm) Use “deadline” i/o scheduler on Linux We like 3ware controllers for mid-size boxen Set shmmax to 134,217,728
© 2006 Progress Software Corporation39DB-7: OpenEdge Database Performance Tuning
Summary
Getting good database performance is easy
© 2006 Progress Software Corporation40DB-7: OpenEdge Database Performance Tuning
More info
My tuning guide on Conference CD PEG (www.peg.com) Dan Foreman’s guides (info at expo) Related sessions:
• COMP–12: Load/Performance Testing Tools and Techniques
• DB–2: Tuning OpenEdge SQL: Boosting Your SQL Application Performance
• DB–5: OpenEdge Database Performance Made Easy• DB–8: Highly Parallel Dump and Load• DB–9: Pick an Index, Any Index...
© 2006 Progress Software Corporation41DB-7: OpenEdge Database Performance Tuning
WantAnswers
© 2006 Progress Software Corporation42DB-7: OpenEdge Database Performance Tuning