Call now: 252-767-6166  
Oracle Training Oracle Support Development Oracle Apps

 
 Home
 E-mail Us
 Oracle Articles
New Oracle Articles


 Oracle Training
 Oracle Tips

 Oracle Forum
 Class Catalog


 Remote DBA
 Oracle Tuning
 Emergency 911
 RAC Support
 Apps Support
 Analysis
 Design
 Implementation
 Oracle Support


 SQL Tuning
 Security

 Oracle UNIX
 Oracle Linux
 Monitoring
 Remote s
upport
 Remote plans
 Remote
services
 Application Server

 Applications
 Oracle Forms
 Oracle Portal
 App Upgrades
 SQL Server
 Oracle Concepts
 Software Support

 Remote S
upport  
 Development  

 Implementation


 Consulting Staff
 Consulting Prices
 Help Wanted!

 


 Oracle Posters
 Oracle Books

 Oracle Scripts
 Ion
 Excel-DB  

Don Burleson Blog 


 

 

 


 

 

 

 

 

Oracle Hardware Scalability Testing

Oracle Database Tips by Donald Burleson

 

Burleson Consulting specializes in Oracle hardware scalability testing services, and you can call for immediate testing of your Oracle server.

One test that can be performed to determine how increasing CPU speed will affect performance in Oracle is to perform a Logical IO test. The idea of the test is to generate the maximum number of logical I/Os over a measured period and determine the maximum LIO per second that the system is capable of from the Oracle viewpoint.

For example, using a script created by Andy Rivenes, the test environment (Dual CPU 900 MHz RISC with 4 gig of memory on SUN 2.9 Solaris 64 bit) yields the following results for maximum Oracle 9i 9.2.0.1 LIO per second:

2-900 MHz RISC 64 bit

LIO/sec

Time(CS)

IO/sec

51138

157

 

50810

158

 

50490

159

 

51134

157

 

AVG

 

50893

As a comparison, I ran the identical test using my 2.8 GHz P-IV 32 bit laptop using XP SP-2 with Oracle9i 9.2.0.5:

1-2.8 GHz P IV 32 bit

LIO

Time(CS)

IO/sec

83467

48

 

77038

52

 

80120

50

 

83458

48

 

AVG

 

81020.75

As you can see, using an identical test yielded results that seem to indicate my Laptop will perform 1.6 times faster for logical IOs than the development SUN box for a single user query.

Perf Inc

 

159.1982

Percent

The results are indicative not only of the increased speed of the processor, even taking into account dual verses single and RISC verses standard, but also of the higher speed memory probably in use in the Laptop.

It is logical to assume that increasing the number and performance rating of the CPUS in the database environment, as well as going with newer, faster memory, will produce similar speed up in the SUN environment. So switching to multiple 1.8 GHz CPUs with faster memory should produce similar results.

One has to wonder what speed increase could be achieved with a quad 3.4 GHz Opteron or other commodity CPU environment with high speed front side buses (in excess of 800 MHz) and high speed ECC memory utilizing a smaller footprint OS such as Linux.

The RAW data from the performance tests is in the appendix.


Appendix A: Raw data from LIO Testing

Connected to:
Oracle9i Enterprise Edition Release 9.2.0.5.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.5.0 - Production
 
SQL> @cpu_test
drop table dbtest
           *
ERROR at line 1:
ORA-00942: table or view does not exist
 
 
 
Table created.
 
 
PL/SQL procedure successfully completed.
 
 
Commit complete.
 
 
 SID Stat Num Stat Name                                       Value
---- -------- ---------------------------------------- ------------
  23       12 CPU used by this session                           22
  23        9 session logical reads                           4,737
  23       41 consistent gets                                 2,406
  23       40 db block gets                                   2,331
  23       42 physical reads                                    131
  23      225 buffer is pinned count                            758
  23       11 CPU used when call started                         22
 
7 rows selected.
 
> Logical I/O Rate Test
>  This script will generate output that can be used to
>  correlate Oracle logical I/Os to CPU capacity and speed.
>  This can be used to compare CPU speed between platforms and
>  Oracle releases or to correlate workload capacity for the
>  system in question.
>
>  The basic premise is that Oracle logical I/Os translate directly
>  to CPU usage. By measuring the time it takes to execute a series
>  of logical I/Os we can measure the rate a CPU can execute a
>  logical I/O.  Since all logical I/Os are not the same, the numbers
>  produced by this test should be considered theoretical maximums.
>  These numbers will give values that can be used to measure CPU
>  capacity and relative speed for an Oracle database, and should be
>  within an acceptable margin of error.
>
>  NOTE: It is important that physical reads remain constant for each
>  loop in order to insure that only logical I/Os affect the timing.
>  A busy SGA may prevent this as well as CPU queuing for overall
>  timing.  It is recommended that this test be run on an idle, or
>  near idle machine.
>
>  The results of this script show the session logical reads
>  performed for each loop, which should be constant, and the total
>  time, which is in hundredths of a second. The statistic "physical
>  reads" is included to verify that all blocks were cached.
>  These values can be used to calculate the maximum logical I/Os per
>  second that can be executed:
>
>  session logical reads / ( total time / 100 ) = maximum logical
>  I/Os per second
>
>  If calculating for capacity against existing information
>  (e.g. SYSMON data) then the total period (elapsed time) must be
>  known, the total number of CPUs available, and some fudge factor
>  (e.g. CPU queuing, SMP scalability):
>    Interval capacity (with 20% fudge factor) =
>      logical I/Os per second * total time * # of CPUs * .8
 
**********
Loop > 1
**********
CPU used by this session = 33
session logical reads = 7335
consistent gets = 4964
db block gets = 2371
physical reads = 173
buffer is pinned count = 767
CPU used when call started = 33
*
CPU used by this session = 33
session logical reads = 47399
consistent gets = 45028
db block gets = 2371
physical reads = 173
buffer is pinned count = 767
CPU used when call started = 33
**
total time: 48
LIOs/sec per CPU: 83467
LIOs/sec system total: 83467
**********
Loop > 2
**********
CPU used by this session = 33
session logical reads = 47399
consistent gets = 45028
db block gets = 2371
physical reads = 173
buffer is pinned count = 767
CPU used when call started = 33
*
CPU used by this session = 33
session logical reads = 87459
consistent gets = 85088
db block gets = 2371
physical reads = 173
buffer is pinned count = 767
CPU used when call started = 33
**
total time: 52
LIOs/sec per CPU: 77038
LIOs/sec system total: 77038
**********
Loop > 3
**********
CPU used by this session = 33
session logical reads = 87459
consistent gets = 85088
db block gets = 2371
physical reads = 173
buffer is pinned count = 767
CPU used when call started = 33
*
CPU used by this session = 33
session logical reads = 127519
consistent gets = 125148
db block gets = 2371
physical reads = 173
buffer is pinned count = 767
CPU used when call started = 33
**
total time: 50
LIOs/sec per CPU: 80120
LIOs/sec system total: 80120
**********
Loop > 4
**********
CPU used by this session = 33
session logical reads = 127519
consistent gets = 125148
db block gets = 2371
physical reads = 173
buffer is pinned count = 767
CPU used when call started = 33
*
CPU used by this session = 33
session logical reads = 167579
consistent gets = 165208
db block gets = 2371
physical reads = 173
buffer is pinned count = 767
CPU used when call started = 33
**
total time: 48
LIOs/sec per CPU: 83458
LIOs/sec system total: 83458
 
PL/SQL procedure successfully completed.
 
 
 SID Stat Num Stat Name                                       Value
---- -------- ---------------------------------------- ------------
  23       12 CPU used by this session                          303
  23        9 session logical reads                         167,585
  23       41 consistent gets                               165,214
  23       40 db block gets                                   2,371
  23       42 physical reads                                    173
  23      225 buffer is pinned count                            767
  23       11 CPU used when call started                        303
 
7 rows selected.
 
 
Table dropped.
 
SQL*Plus: Release 9.2.0.5.0 - Production on Mon Jan 23 14:02:12 2006
 
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
 
 
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
 
prts1>@cpu_test
drop table dbtest
           *
ERROR at line 1:
ORA-00942: table or view does not exist
 
 
 
Table created.
 
 
PL/SQL procedure successfully completed.
 
 
Commit complete.
 
 
 SID Stat Num Stat Name                                       Value
---- -------- ---------------------------------------- ------------
  10       12 CPU used by this session                           41
  10        9 session logical reads                           3,016
  10       41 consistent gets                                   242
  10       40 db block gets                                   2,774
  10       42 physical reads                                      3
  10      222 buffer is pinned count                              2
  10       11 CPU used when call started                         41
 
7 rows selected.
 
> Logical I/O Rate Test
>  This script will generate output that can be used to
>  correlate Oracle logical I/Os to CPU capacity and speed.
>  This can be used to compare CPU speed between platforms and
>  Oracle releases or to correlate workload capacity for the
>  system in question.
>
>  The basic premise is that Oracle logical I/Os translate directly
>  to CPU usage. By measuring the time it takes to execute a series
>  of logical I/Os we can measure the rate a CPU can execute a
>  logical I/O.  Since all logical I/Os are not the same, the numbers
>  produced by this test should be considered theoretical maximums.
>  These numbers will give values that can be used to measure CPU
>  capacity and relative speed for an Oracle database, and should be
>  within an acceptable margin of error.
>
>  NOTE: It is important that physical reads remain constant for each
>  loop in order to insure that only logical I/Os affect the timing.
>  A busy SGA may prevent this as well as CPU queuing for overall
>  timing.  It is recommended that this test be run on an idle, or
>  near idle machine.
>
>  The results of this script show the session logical reads
>  performed for each loop, which should be constant, and the total
>  time, which is in hundredths of a second. The statistic "physical
>  reads" is included to verify that all blocks were cached.
>  These values can be used to calculate the maximum logical I/Os per
>  second that can be executed:
>
>  session logical reads / ( total time / 100 ) = maximum logical
>  I/Os per second
>
>  If calculating for capacity against existing information
>  (e.g. SYSMON data) then the total period (elapsed time) must be
>  known, the total number of CPUs available, and some fudge factor
>  (e.g. CPU queuing, SMP scalability):
>    Interval capacity (with 20% fudge factor) =
>      logical I/Os per second * total time * # of CPUs * .8
 
**********
Loop > 1
**********
CPU used by this session = 169
session logical reads = 5437
consistent gets = 2602
db block gets = 2835
physical reads = 8
buffer is pinned count = 7
CPU used when call started = 169
*
CPU used by this session = 169
session logical reads = 45581
consistent gets = 42746
db block gets = 2835
physical reads = 8
buffer is pinned count = 7
CPU used when call started = 169
**
total time: 157
LIOs/sec per CPU: 25569
LIOs/sec system total: 51138
**********
Loop > 2
**********
CPU used by this session = 169
session logical reads = 45581
consistent gets = 42746
db block gets = 2835
physical reads = 8
buffer is pinned count = 7
CPU used when call started = 169
*
CPU used by this session = 169
session logical reads = 85721
consistent gets = 82886
db block gets = 2835
physical reads = 8
buffer is pinned count = 7
CPU used when call started = 169
**
total time: 158
LIOs/sec per CPU: 25405
LIOs/sec system total: 50810
**********
Loop > 3
**********
CPU used by this session = 169
session logical reads = 85721
consistent gets = 82886
db block gets = 2835
physical reads = 8
buffer is pinned count = 7
CPU used when call started = 169
*
CPU used by this session = 169
session logical reads = 125861
consistent gets = 123026
db block gets = 2835
physical reads = 8
buffer is pinned count = 7
CPU used when call started = 169
**
total time: 159
LIOs/sec per CPU: 25245
LIOs/sec system total: 50490
**********
Loop > 4
**********
CPU used by this session = 169
session logical reads = 125861
consistent gets = 123026
db block gets = 2835
physical reads = 8
buffer is pinned count = 7
CPU used when call started = 169
*
CPU used by this session = 169
session logical reads = 166001
consistent gets = 163166
db block gets = 2835
physical reads = 8
buffer is pinned count = 7
CPU used when call started = 169
**
total time: 157
LIOs/sec per CPU: 25567
LIOs/sec system total: 51134
 
PL/SQL procedure successfully completed.
 
 
 SID Stat Num Stat Name                                       Value
---- -------- ---------------------------------------- ------------
  10       12 CPU used by this session                        1,817
  10        9 session logical reads                         166,007
  10       41 consistent gets                               163,172
  10       40 db block gets                                   2,835
  10       42 physical reads                                      8
  10      222 buffer is pinned count                              7
  10       11 CPU used when call started                      1,817
 
7 rows selected.

 


 

 

��  
 
 
Oracle Training at Sea
 
 
 
 
oracle dba poster
 

 
Follow us on Twitter 
 
Oracle performance tuning software 
 
Oracle Linux poster
 
 
 

 

Burleson is the American Team

Note: This Oracle documentation was created as a support and Oracle training reference for use by our DBA performance tuning consulting professionals.  Feel free to ask questions on our Oracle forum.

Verify experience! Anyone considering using the services of an Oracle support expert should independently investigate their credentials and experience, and not rely on advertisements and self-proclaimed expertise. All legitimate Oracle experts publish their Oracle qualifications.

Errata?  Oracle technology is changing and we strive to update our BC Oracle support information.  If you find an error or have a suggestion for improving our content, we would appreciate your feedback.  Just  e-mail:  

and include the URL for the page.


                    









Burleson Consulting

The Oracle of Database Support

Oracle Performance Tuning

Remote DBA Services


 

Copyright © 1996 -  2020

All rights reserved by Burleson

Oracle ® is the registered trademark of Oracle Corporation.