Moving ahead with Linux and Progress

Download Report

Transcript Moving ahead with Linux and Progress

Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 1
E2530: The OpenEdge™ RDBMS
and Linux - A Great Combination
-orHow I convinced my wife that going away and playing with Linux for a
week was 'Work'.
●
John Harlow, BravePoint
●
Dan Foreman, BravePoint
●
Gus Björklund, Progress
PROGRESS
S O F T W A R E
Engine Crew
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 2
Abstract
Does Linux really work? Does it perform well? How does
one pronounce "Leenux" anyway? How good is the 2.6
kernel? See how the OpenEdge 10 RDBMS and Linux make
a robust, high-performance database server. Find out how
easy it is to configure the system for outstanding performance,
scalability and reliability. This how-to session based on the
latest benchmark results will give you the latest information
on using OpenEdge on Linux.
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 3
The Location
●
●
●
Converge again for a
third 'Secret Bunker‘
expedition
This time the bunker
was cleverly hidden
inside a mild-mannered
office building
Two team members are
in the picture
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 4
The Team
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 5
The Mission
●
●
Load operating systems
–
Tried and true versions
–
Mysterious new versions
Load database software
–
Again, tried and true versions
–
Very mysterious new version
●
See how well they perform
●
Consume beer
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 6
Topics
Goals
Setup
Linux Findings
Progress Findings
Summary
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 7
Linux Goals
Evaluate the installation process
Compare the performance of the 2.4 and 2.6 Linux
kernels
 Compare the 2.6 anticipatory and deadline schedulers
as well
Explore out-of-the-box filesystems (ext3fs, jfs,
xfs, resierfs)
Explore the tools in 2.6 for tuning such workloads
Try SuSE, for a change
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 8
Progress Goals
Compare the performance of the latest Version 9
and 10 releases (9.1d and 10.0a)
Compare the performance of Type 1 and Type 2
storage areas and various storage area
configurations
Analyze the performance of (unreleased) 10.0b
Generally fiddle with various settings to measure
their impact on the process.
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 9
Now Gus’s Turn
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 10
Setup - The Hardware
●
3 Dell PowerEdge 6600
–
quad Xeon 1.4ghz
–
4gb RAM
–
8 * 73gb Ultra3 SCSI
10k RPM disks
–
PERC 3/DC twochannel raid controller
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 11
Setup – The Operating
Systems
SLES 8.0 (SuSE Linux Enterprise System)
 2.4.19 kernel
 Installed on 1 system (hare02)
SuSE Linux 9.1 Professional Beta
 Final Release Candidate
 2.6.4 kernel
 Installed on 2 systems (hare01 & hare03)
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 12
Why SuSE?
We had access to supported releases of both
kernel levels for comparison.
SuSE 9.1 support by PSC is just around the
corner
 SuSE 8 is already supported
We've never benchmarked it before
We like SuSE
We hate SCO
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 13
Planning the Installation
8 drive array
 1 drive for all standard filesystems
 1 drive for bi (mounted as /bi)
 6 drives for database extents (raid 0, mounted
as /db)
 128k stripe size (biggest allowed by controller)
Same partitioning scheme used on all three
systems
Ext3fs used for all root volume filesystems
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 14
Installing the OSes
Initial SLES 8 installation failed
 A bit of googling revealed that we needed
“acpi=oldboot” as part of the install parameters
 Install then went fine
SuSE 9.1 installed without a problem
 hare01 set to boot with anticipatory scheduler
(default)
 hare03 set to boot with deadline scheduler
(elevator=deadline)
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 15
Installing Progress
Progress install failed on SuSE 9.1
 Needed environment var
LD_ASSUME_KERNEL=2.4.1 set.
• Fixed in 9.1D09
 Tells kernel to use old threading scheme for
your processes
 This is really a glibc artifact.
Installed fine on SLES 8
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 16
Planning the Benchmarks
We decided to perform a few similar
benchmarks with each version of Progress
on each system for comparison
Then we would explore different features
on the different systems
We also decided that if the anticipatory
scheduler was slower (as expected) then we
would dump it entirely
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 17
Now It Is Dan’s Turn
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 18
Initial Benchmark Runs
We prepared and loaded databases on each
system.
Type 1 storage areas were used
Each system was given a basic Progress
tuning
The next step was to benchmark
The runs commenced at about 3PM on Day
1
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 19
The ATM Benchmark
Simulates teller machine transactions
 deposit or withdrawal
 heavy database update workload (no think time)
Each transaction
 retrieves and updates account, branch, and teller rows
 creates a history row
Run “n” transaction generators
 concurrently
 for fixed time period
 count total number of transactions performed
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 20
The ATM Database
80,000,000 accounts
80,000 Tellers
8,000 branches
4k blocksize database
6 2-gig fixed data extents (12 gig)
 plus 1 variable extent
 1 variable (bigrow’n) extent
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 21
The Baseline Tuning
Cluster size: 16384
BI blocksize: 16
Server options:
• -n 200 -L 10240
• -B 64000
• -spin 50000 -bibufs 32
Page writers: 4
BI writer: yes
AI writer: no
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 22
Initial Results by System
hare01
9.1d
10.0a
10.0b
hare02
hare03
0
200
400
600
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 23
800
Analyzing the Results
In general the numbers were significantly
higher than our last set of benchmarks on
pc-grade, dual processor servers
The overall differences were measurable
between various OS and Progress versions,
but not overwhelming
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 24
End of Day One
As we expected, we saw better performance
out of the 2.6 kernel than out of 2.4.
Additionally, the deadline scheduler
outperformed the anticipatory scheduler
We ran a few more benchmarks.
Then we had beer
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 25
Back To You, John
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 26
Benchmarking Continued
When we ran the same benchmarks on 10.0a and
10.0b we generally got similar results
At this point we began looking for more
performance gains
The 2.6 kernel, with the deadline scheduler stayed
ahead of the 2.4 kernel, but still had issues
We dumped the anticipatory scheduler
Performance stayed < 800 TPS
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 27
Linux Performance Issues
We observed issues with buffer pool
management in the 2.6.4 kernel
We saw long pauses in database activity
We saw system sync's (sync command) take
over 2 minutes to return.
This led us to start investigating tuning the
vm
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 28
Tuning the VM
The behavior of the 2.6 VM is controlled by
settings in /proc/sys/vm
/proc/sys/vm/max_map_count
/proc/sys/vm/min_free_kbytes
/proc/sys/vm/lower_zone_protection
/proc/sys/vm/nr_hugepages
/proc/sys/vm/swappiness
/proc/sys/vm/nr_pdflush_threads
/proc/sys/vm/dirty_expire_centisecs
/proc/sys/vm/dirty_writeback_centisecs
/proc/sys/vm/dirty_ratio
/proc/sys/vm/dirty_background_ratio
/proc/sys/vm/page-cluster
/proc/sys/vm/overcommit_ratio
/proc/sys/vm/overcommit_memory
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 29
Maybe –directio Will Help
We continued to tune the buffer pool with
no significant gains
At the time, we didn’t try tuning
swappiness. That is on our list for next time.
What about directio?
 directio uses O_DSYNC
 We have buffer pool problems
 So we tried it (again)
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 30
-directio doesn’t help
Here are 3 runs with –directio
Cl Time Trans
Tps Conc Avg R Min R 50% R 90% R 95% R Max R
--- ---- ------ ------ ----- ----- ----- ----- ----- ----- ----150 300 70733 235.8 149.8
0.6
0.0
0.6
1.0
1.2
3.2
150 300 76648 255.5 128.4
0.5
0.0
0.5
1.0
1.1
2.9
150 300 72231 240.8 149.6
0.6
0.0
0.6
1.0
1.2
6.6
Here are 3 runs without –directio
Cl Time Trans
Tps Conc Avg R Min R 50% R 90% R 95% R Max R
--- ---- ------ ------ ----- ----- ----- ----- ----- ----- ----150 300 191806 639.4 149.4
0.2
0.0
0.1
0.5
1.0 17.2
150 300 210064 700.2 149.7
0.2
0.0
0.0
0.2
0.5 38.9
150 300 203901 679.7 142.8
0.2
0.0
0.1
0.2
0.5 39.9
The difference is significant
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 31
We Continue to Ponder These
Performance Issues
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 32
Gus’s Turn
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 33
Linux Filesystems
4 filesystems are now supported by most
distributions




Ext3fs (journaling ext2, RedHat standard)
Reiserfs (journaling fs, SuSE standard)
Xfs (journaling fs from SGI)
Jfs (journaling fs from IBM)
ext3, reiser and jfs were tested
 Xfs had problems formatting the bi volume
• SuSE 9.1 beta bug, now fixed in 9.1 FCS
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 34
Other Filesystem Info
All filesystems were mounted noatime
 But no gain has been benchmarked with this option
 Probably because of fixed DB extents
Tests were run using the mount option of
‘writeback’ for the db files on ext3
 Bi was mounted “ordered”
 No performance gain was detected from this
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 35
Reiser –vs- Ext3fs
Best Reiser Run
No Cl Time Trans
Tps Conc Avg R Min R 50% R 90% R 95% R Max R
-- --- ---- ------ ------ ----- ----- ----- ----- ----- ----- ----3 50 300 420611 1402.0 48.7
0.0
0.0
0.0
0.1
0.1 56.6
Best Ext3 Run
No Cl Time Trans
Tps Conc Avg R Min R 50% R 90% R 95% R Max R
-- --- ---- ------ ------ ----- ----- ----- ----- ----- ----- ----32 55 300 370781 1235.9 54.8
0.0
0.0
0.0
0.1
0.1 15.7
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 36
Filesystems Findings
Reiser again beats ext3fs
13% higher TPS w/Reiser (Statistically
significant)
360% higher max R (Also statistically significant)
 What is ‘max R’ Gus?
Concurrency is lower on Reiser too.
Yet 95% of the Txn’s finished just as quickly
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 37
More Linux Info
•At lunch one day we
glanced in the window
of a beer store!
And Discovered this!
We liberated it and
installed it in the
Bunker
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 38
Type 2 Storage Areas
These are new in 10.0a
They were formerly called “data clusters”
Require a dump/load to implement
New syntax for structure file
Type 1
 d "data":7,256 /db/100at2/atm_7.d1
f 2000000
Type 2
 d "data":7,256;512 /db/100at2/atm_7.d1
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 39
f 2000000
Type 2 Storage Areas
Massive improvement!!!!!
The first run jumped from < 800 to over
1000 tps!
From this point on, we used type 2 areas for
all benchmarks
We also did not experience the severe buffer
issues in Linux using Type 2 areas
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 40
Over To Dan
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 41
Progress Tuning
Tuning Spin




baseline
2.4 linux
10.0a
Type 1 areas
Spin
TPS
0
133
1
120
2000
436
40,000
680
100,000
679
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 42
Progress Tuning
Buffer size




baseline
2.4 Linux
10.0a
Type 1 areas
Buffers
TPS
64,000
771
128,000
666
256,000
624
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 43
Extent Sizes
Extent Size
 baseline
 2.4 linux
 10.0a
Extent Size
TPS
128 Mb
800
2 Gb
773
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 44
Bi Clustersize
Bi Cluster size




baseline
2.6 linux
10.0a
Type 1 areas
Cluster size
TPS
16,384
801
32,768
782
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 45
Back To You John
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 46
Varying User Count
Ran several long sessions where the user count
varied from 10 to 550
This was on 2.6 linux w/deadline scheduler
Settings were
• Cluster size: 16384
• BI blocksize: 16
• Server options:
– -n 600 -L 10240
– -B 128000
– -spin 50000 -bibufs 64
• Page writers: 8, BI writer: yes, AI writer: no
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 47
Varying The User Count
10
1600
1400
1200
1000
800
600
400
200
0
Note: no “think time”
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 48
50 to 2,000 users
1000
TPS
800
600
400
200
20
0
40
0
60
0
80
0
10
00
12
00
14
00
16
00
18
00
20
00
0
0
Users
Note: 0 to 3 sec random “think time”
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 49
Well….
What did we learn ?
SuSE 9.1 BETA is very nice
 Gus prefers over RedHat
2.6 kernel has many improvements
We need to learn a lot more about 2.6
 We don’t understand the new VM
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 50
Overall Conclusions
Linux and Progress is a great combination
Performance is definitely better in 2.6 than
2.4
 Utilize the deadline scheduler
Use quality hardware
 The power goes up as the prices come down
Set the database up properly
 Use Type 2 storage areas in OE 10
Enjoy the ride
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 51
Answers
Exchange 2004 - E2530: OpenEdge RDBMS on Linux - 52