DB-7: OpenEdge® Database Performance Tuning Gus Björklund Wizard, Vice President Technology
Topics Easy Stuff: The Basics Disk Layout Esoterica DB-7: OpenEdge Database Performance Tuning
First Things First > > probkup foo > DB-7: OpenEdge Database Performance Tuning
“Out of the Box” Performance > > proserve foo > DB-7: OpenEdge Database Performance Tuning
“Out of the box” Performance DB-7: OpenEdge Database Performance Tuning
“Nine Easy Pieces” for Better Results DB-7: OpenEdge Database Performance Tuning
1: Buffer Pool Size > > proserve foo -B 32000 > DB-7: OpenEdge Database Performance Tuning
2: Spinlock retry count > > proserve foo -B 32000 -spin 50000 > DB-7: OpenEdge Database Performance Tuning
3: Start BI Log Writer (BIW) > > proserve foo -B 32000 -spin 50000 > probiw foo > DB-7: OpenEdge Database Performance Tuning
4: Start Async Page Writer (APW) > > proserve foo -B 32000 -spin 50000 > probiw foo > proapw foo > proapw foo > DB-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 > DB-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 > DB-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 > DB-7: OpenEdge Database Performance Tuning
8: Initial Database Layout d "Schema Area" /users/gus/atm.d1 d "atm":7,64;512 /users/gus/atm_7.d1 f 2000000 d "atm":7,64;512 /users/gus/atm_7.d2 f 2000000 d "atm":7,64;512 /users/gus/atm_7.d3 f 2000000 d "atm":7,64;512 /users/gus/atm_7.d4 f 2000000 d "atm":7,64;512 /users/gus/atm_7.d5 f 2000000 d "atm":7,64;512 /users/gus/atm_7.d6 f 2000000 d "atm":7,64;512 /users/gus/atm_7.d7 b /users/gus/atm.b1 DB-7: OpenEdge Database Performance Tuning
8: Move Data Extents to Striped Array d "Schema Area" /users/gus/atm.d1 d "atm":7,64;512 /array/atm_7.d1 f 2000000 d "atm":7,64;512 /array/atm_7.d2 f 2000000 d "atm":7,64;512 /array/atm_7.d3 f 2000000 d "atm":7,64;512 /array/atm_7.d4 f 2000000 d "atm":7,64;512 /array/atm_7.d5 f 2000000 d "atm":7,64;512 /array/atm_7.d6 f 2000000 d "atm":7,64;512 /array/atm_7.d7 b /users/gus/atm.b1 DB-7: OpenEdge Database Performance Tuning
9: BI Log On Separate Disk d "Schema Area" /users/gus/atm.d1 d "atm":7,64;512 /array/atm_7.d1 f 2000000 d "atm":7,64;512 /array/atm_7.d2 f 2000000 d "atm":7,64;512 /array/atm_7.d3 f 2000000 d "atm":7,64;512 /array/atm_7.d4 f 2000000 d "atm":7,64;512 /array/atm_7.d5 f 2000000 d "atm":7,64;512 /array/atm_7.d6 f 2000000 d "atm":7,64;512 /array/atm_7.d7 b /bidisk/atm.b1 DB-7: OpenEdge Database Performance Tuning
Can you predict the results ? DB-7: OpenEdge Database Performance Tuning
Now Our Results Are DB-7: OpenEdge Database Performance Tuning
Effect of Tuning -spin DB-7: OpenEdge Database Performance Tuning
Effect of Tuning -B DB-7: OpenEdge Database Performance Tuning
Disk Layout DB-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 DB-7: OpenEdge Database Performance Tuning
Multiple Disk Drives DB-7: OpenEdge Database Performance Tuning
Stripe and Mirror DB-7: OpenEdge Database Performance Tuning
Put BI Log on own disk DB-7: OpenEdge Database Performance Tuning
Use Type II Data Areas DB-7: OpenEdge Database Performance Tuning
Type I vs Type II Areas DB-7: OpenEdge Database Performance Tuning
Esoterica DB-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) DB-7: OpenEdge Database Performance Tuning
Temporary files (-T) Local drives, not on network Spread users over multiple disks DB-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 DB-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 DB-7: OpenEdge Database Performance Tuning
Linux File Systems ReiserFS results wildly erratic - don’t use ! DB-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 DB-7: OpenEdge Database Performance Tuning
Windows Tips (part 1) Remove crapware Turn off Black screensaver only 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) DB-7: OpenEdge Database Performance Tuning
Windows Tips (part 2) NTFS filesystem Increase NTFS cluster size 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” DB-7: OpenEdge Database Performance Tuning
SQL Tips Add more indexes Run UPDATE STATISTICS Use ODBC and JDBC API’s well See DataDirect.com/developer for technical papers Upgrade to 10.1 DB-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 DB-7: OpenEdge Database Performance Tuning
Summary Getting good database performance is easy DB-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... DB-7: OpenEdge Database Performance Tuning
? Want Answers DB-7: OpenEdge Database Performance Tuning
DB-7: OpenEdge Database Performance Tuning