Quantcast
Channel: Bryan's Oracle Blog
Viewing all articles
Browse latest Browse all 147

Hyperthreading with Oracle (update)

$
0
0
After my first post on hyperthreading, and all the hits I've been getting I've decided to update it..

My first post was pased on testing with a DL980.. This is an 8 socket server with   X7560  @ 2.27GHz processes.

My currently updated post is on a new 2 socket server with the E7- 2870 @ 2.40GHz chipset.

The servers I tested on were

2 Socket
10 Core (dual threaded)
11.2.0.3 Oracle
Linux RHEL  2.6.18-274.17.1.el5
132g of ram.


I tested by using Kevin Clossons SLOB test which can be found here.

I tested using multiple process settings, and you see how these  servers scaled up with the processes.

I warmed up with 15 processes.  Looking at the LIO count, we are doing 7.2 million. output



Load Profile              Per Second    Per Transaction   Per Exec   Per Call
~~~~~~~~~~~~ --------------- --------------- ---------- ----------
DB Time(s): 14.4 24.9 0.00 4.60
DB CPU(s): 14.3 24.7 0.00 4.56
Redo size: 13,974.5 24,137.1
Logical reads: 7,259,470.5 12,538,708.3
Block changes: 32.9 56.8
Physical reads: 69.9 120.8
Physical writes: 15.8 27.2
User calls: 3.1 5.4
Parses: 3.8 6.6
Hard parses: 0.0 0.0
W/A MB processed: 0.4 0.7
Logons: 0.1 0.2
Executes: 28,206.8 48,719.3
Rollbacks: 0.0 0.0
Transactions: 0.6


Then 20 processes.  8.7 million still looking good.  output


Load Profile              Per Second    Per Transaction   Per Exec   Per Call
~~~~~~~~~~~~ --------------- --------------- ---------- ----------
DB Time(s): 18.9 127.0 0.00 10.83
DB CPU(s): 18.9 126.8 0.00 10.82
Redo size: 15,073.6 101,207.6
Logical reads: 8,714,693.4 58,512,431.8
Block changes: 39.2 263.4
Physical reads: 2.1 13.9
Physical writes: 13.0 87.0
User calls: 1.8 11.7
Parses: 3.8 25.6
Hard parses: 0.0 0.1
W/A MB processed: 0.4 2.5
Logons: 0.1 0.4
Executes: 33,859.7 227,341.5
Rollbacks: 0.0 0.0
Transactions: 0.2

Now lets try 25.. see how we go past the number of cores .  9.4 million.. Hyperthreading is scaling nicely. output


Load Profile              Per Second    Per Transaction   Per Exec   Per Call
~~~~~~~~~~~~ --------------- --------------- ---------- ----------
DB Time(s): 23.1 91.7 0.00 9.26
DB CPU(s): 23.0 91.6 0.00 9.24
Redo size: 21,634.2 86,063.7
Logical reads: 9,406,658.2 37,420,998.8
Block changes: 68.2 271.4
Physical reads: 3.7 14.8
Physical writes: 5.7 22.5
User calls: 2.5 9.9
Parses: 3.3 13.3
Hard parses: 0.1 0.3
W/A MB processed: 0.4 1.6
Logons: 0.1 0.5
Executes: 36,544.7 145,380.0
Rollbacks: 0.0 0.0
Transactions: 0.3


Next 35.. Still scaling... output


Load Profile              Per Second    Per Transaction   Per Exec   Per Call
~~~~~~~~~~~~ --------------- --------------- ---------- ----------
DB Time(s): 33.5 310.9 0.00 18.74
DB CPU(s): 33.5 310.3 0.00 18.70
Redo size: 9,379.2 86,997.8
Logical reads: 11,039,158.6 102,395,221.3
Block changes: 17.7 164.4
Physical reads: 1.3 12.0
Physical writes: 4.0 36.9
User calls: 1.8 16.6
Parses: 2.0 18.9
Hard parses: 0.1 1.0
W/A MB processed: 0.2 2.2
Logons: 0.1 0.6
Executes: 42,882.8 397,765.4
Rollbacks: 0.0 0.0
Transactions: 0.1

Finally the number of threads.  This appears to be the peak. output


Load Profile              Per Second    Per Transaction   Per Exec   Per Call
~~~~~~~~~~~~ --------------- --------------- ---------- ----------
DB Time(s): 38.3 387.0 0.00 17.48
DB CPU(s): 37.6 380.4 0.00 17.18
Redo size: 9,207.1 93,060.2
Logical reads: 11,577,951.1 117,023,088.1
Block changes: 16.4 166.1
Physical reads: 1.1 11.5
Physical writes: 4.5 45.1
User calls: 2.2 22.1
Parses: 2.0 19.9
Hard parses: 0.1 0.6
W/A MB processed: 0.2 2.5
Logons: 0.1 0.9
Executes: 44,975.6 454,587.0
Rollbacks: 0.0 0.0
Transactions: 0.1

Now lets go up to 45 ...   things start dropping off.  output


oad Profile              Per Second    Per Transaction   Per Exec   Per Call
~~~~~~~~~~~~ --------------- --------------- ---------- ----------
DB Time(s): 40.7 482.9 0.00 16.78
DB CPU(s): 36.0 427.5 0.00 14.86
Redo size: 8,205.8 97,318.2
Logical reads: 11,100,719.6 131,651,002.6
Block changes: 14.0 165.9
Physical reads: 0.9 10.3
Physical writes: 3.2 38.3
User calls: 2.4 28.8
Parses: 2.3 27.5
Hard parses: 0.1 0.6
W/A MB processed: 0.3 3.6
Logons: 0.1 1.4
Executes: 43,122.5 511,418.6
Rollbacks: 0.0 0.0
Transactions: 0.1




So if you look at the throughput..

20 processes    8,7 Million LIO's
40 Processes   11.6 Million LIO's

Not quite linaear progression, but things don't really top off until I get to the number of threads..  This scaled much better, and it seems that hyperthreading is helpgin push more workload through.

Viewing all articles
Browse latest Browse all 147

Trending Articles