Oracle/Database/Oracle Orion

From Omnia
Jump to navigation Jump to search

Orion

Oracle ORION Downloads

"ORION (Oracle I/O Calibration Tool) is a standalone tool for calibrating the I/O performance for storage systems that are intended to be used for Oracle databases. The calibration results are useful for understanding the performance capabilities of a storage system, either to uncover issues that would impact the performance of an Oracle database or to size a new database installation. Since ORION is a standalone tool, the user is not required to create and run an Oracle database.
With the goal of closely mimicing the Oracle database, ORION generates a synthetic I/O workload, using the same I/O software stack as Oracle. ORION can be configured to generate a wide range of I/O workloads, including ones that simulate OLTP and data warehouse workloads.
ORION is available for many platforms. Support for additional platforms will be added in the future. The User's Guide provides detailed usage documentation, including a "getting started" section and trouble-shooting tips. A summary of how to use ORION is also available directly from ORION by invoking the "-help" option.
Please note that ORION is not supported by Oracle. "

Tutorial

Oracle Orion tool - Measuring Disk I/O—Oracle’s ORION Tool - http://www.jameskoopmann.com/docs/MeasuringDiskIOOraclesORIONTool.htm

"Oracle’s ORION workload tool enables architects to effectively develop a workload that can mimic and stress a storage array in the same manner as planned applications with an Oracle backend database."
"To complete and increase your ability to model an the physical aspects of an Oracle database it is advantageous for the designer to test a disk configuration before they actually install an Oracle database on top of it. For this reason I suggest you take a look at Oracle’s ORION tool to help benchmark your storage architecture. The proper benchmarking can be the difference between the same hardware having poor or excellent performance. Through the use of Oracle’s ORION workload tool Database Architects can effectively develop a workload that can mimic and stress a storage array in the same manner as the planned application with an Oracle backend database. Because the ORION tool does not require a running Oracle database, multiple configurations can be tested such that an optimal storage configuration can be obtained while providing for reliability, stability, and scalability."

The Orion tool has a variety of options to fine-tune the sample workload desired to stress the storage system. Of interest are the following:

  1. Run Level
        1. Simple – Small and Large Random I/O are tested individually.
        2. Normal – Same as the simple run level but does combinations of small and random I/Os together.
        3. Advanced – Allows the user to use a wide variety of options to fine tune the workload.
  2. num_disks – Defines the number of spindles in the storage array that will be tested.
  3. size_small – Defines the size for small random I/O.
  4. size_large – Defines the size for large random or sequential I/O.
  5. type – Defines the type of large I/O (random or sequential).
  6. write – Defines the percentage of writes in the workload.
  7. matrix – Defines the mixture of workload to run.


It is very easy to begin using the Orion tool

  1. Download Orion
  2. Install by unzipping the file
  3. Create a file that contains a list of raw volume or files to test
  4. Execute the Orion binary with workload options
  5. View the tabular output

Simple read test:

./orion_linux_em64t -run advanced -testname orion1 -num_disks 1 -write 0 -simulate concat -matrix detailed
./orion_linux_em64t -run advanced -testname orion3 -num_disks 3 -write 0 -simulate concat -matrix detailed

Examples

NAME='orion-test-run'

ORION_HOME=/orion
ORION=${ORION_HOME}/bin/orion

#PARAMS='-run advanced -num_disks 40 -size_small 8 -size_large 8 -type seq -matrix col -num_small 0 -write 99 '
#PARAMS='-run advanced -num_disks 40 -size_small 8 -size_large 8 -type seq -write 99 '
#PARAMS='-run advanced -testname mtest -num_disks 36 -simulate raid0 -write 0 -type seq -matrix basic -cache_size 16386 –verbose'

# SIMPLE TEST....
PARAMS='-run simple -testname mytest -num_disks 8'

$ORION $PARAMS -testname $NAME &

orion-test-run.lun:

/altamira_bd/OPGE/redos_002/prueba1.dbf
/altamira_bd/OPGE/redos_002/prueba2.dbf
/altamira_bd/OPGE/redos_002/prueba3.dbf
/altamira_bd/OPGE/redos_002/prueba4.dbf
/altamira_bd/OPGE/redos_002/prueba5.dbf
/altamira_bd/OPGE/redos_001/prueba1.dbf
/altamira_bd/OPGE/redos_001/prueba2.dbf
/altamira_bd/OPGE/redos_001/prueba3.dbf
/altamira_bd/OPGE/redos_001/prueba4.dbf
/altamira_bd/OPGE/redos_001/prueba5.dbf

Command Line Options

# /orion/bin/orion -help
ORION: ORacle IO Numbers -- Version 11.1.0.7.0
ORION runs IO performance tests that model Oracle RDBMS IO workloads.
It measures the performance of small (2-32K) IOs and large (128K+) IOs
at various load levels.  Each Orion data point is done at a specific
mix of small and large IO loads sustained for a duration.  Anywhere
from a single data point to a two-dimensional array of data points can
be tested by setting the right options.

An Orion test consists of data points at various small and large IO
load levels.  These points can be represented as a two-dimensional
matrix: Each column in the matrix represents a fixed small IO load.
Each row represents a fixed large IO load.  The first row is with no
large IO load and the first column is with no small IO load.  An Orion
test can be a single point, a row, a column or the whole matrix.

The 'run' parameter is the only mandatory parameter. Defaults
are indicated for all other parameters.  For additional information on
the user interface, see the Orion User Guide.

<testname> is a filename prefix.  By default, it is "orion".  It can be
specified with the 'testname' parameter.

<testname>.lun should contain a carriage-return-separated list of LUNs
The output files for a test run are prefixed by <testname>_<date> where
date is "yyyymmdd_hhmm".

The output files are:
<testname>_<date>_summary.txt -  Summary of the input parameters along with
                                 min. small latency, max large MBPS
                                 and/or max. small IOPS.
<testname>_<date>_mbps.csv - Performance results of large IOs in MBPS
<testname>_<date>_iops.csv - Performance results of small IOs in IOPS
<testname>_<date>_lat.csv - Latency of small IOs
<testname>_<date>_tradeoff.csv - Shows large MBPS / small IOPS
                                 combinations that can be achieved at
                                 certain small latencies
<testname>_trace.txt - Extended, unprocessed output

WARNING: IF YOU ARE PERFORMING WRITE TESTS, BE PREPARED TO LOSE ANY DATA STORED
ON THE LUNS.

Mandatory parameters:
run                     Type of workload to run (simple, normal, advanced, dss, oltp)
                        simple - tests random 8K small IOs at various loads,
                                 then random 1M large IOs at various loads.
                        normal - tests combinations of random 8K small
                                 IOs and random 1M large IOs
                        advanced - run the workload specified by the user
                                   using optional parameters
                        dss - run with random 1M large IOs at increasing loads
                                to determine the maximum throughput
                        oltp - run with random 8K small IOs at increasing loads
                                to determine the maximum IOPS
Optional parameters:
testname                Name of the test run
num_disks                       Number of disks (physical spindles). Default is
                        the number of LUNs in <testname>.lun
size_small              Size of small IOs (in KB) - default 8
size_large              Size of large IOs (in KB) - default 1024

type                    Type of large IOs (rand, seq) - default rand
                          rand - Random large IOs
                          seq -  Sequential streams of large IOs
num_streamIO            Number of concurrent IOs per stream (only if type is
                        seq) - default 4
simulate                Orion tests on a virtual volume formed by combining the
                        provided volumes in one of these ways (default concat):
                          concat - A serial concatenation of the volumes
                          raid0 - A RAID-0 mapping across the volumes

write                   Percentage of writes (SEE WARNING ABOVE) - default 0

cache_size              Size *IN MEGABYTES* of the array's cache.
                        Unless this option is set to 0, Orion does a number
                        of (unmeasured) random IO before each large sequential
                        data point.  This is done in order to fill up the array
                        cache with random data.  This way, the blocks from one
                        data point do not result in cache hits for the next
                        data point.  Read tests are preceded with junk reads
                        and write tests are preceded with junk writes.  If
                        specified, this 'cache warming' is done until
                        cache_size worth of IO has been read or written.
                        Default behavior: fill up cache for 2 minutes before
                        each data point.

duration                Duration of each data point (in seconds) - default 60

num_small               Number of outstanding small IOs (only if matrix is
                        point, col, or max) - no default
num_large               For random, number of outstanding large IOs.
                        For sequential, number of streams (only if matrix is
                        point, row, or max) - no default

matrix                  An Orion test consists of data points at various small
                        and large IO load levels.  These points can be
                        represented as a two-dimensional matrix: Each column
                        in the matrix represents a fixed small IO load.  Each
                        row represents a fixed large IO load.  The first row
                        is with no large IO load and the first column is with
                        no small IO load.  An Orion test can be a single point,
                        a row, a column or the whole matrix, depending on the
                        matrix option setting below (default basic):
                          basic - test the first row and the first column
                          detailed - test the entire matrix
                          point - test at load level num_small, num_large
                          col - varying large IO load with num_small small IOs
                          row - varying small IO load with num_large large IOs
                          max - test varying loads up to num_small, num_large

verbose                 Prints tracing information to standard output if set.
                        Default -- not set

Examples
For a preliminary set of data
        -run simple
For a basic set of data
        -run normal
To evaluate storage for an OLTP database
        -run oltp
To evaluate storage for a data warehouse
        -run dss
To generate combinations of 32KB and 1MB reads to random locations:
        -run advanced
        -size_small 32 -size_large 1024 -type rand      -matrix detailed
To generate multiple sequential 1MB write streams, simulating 1MB RAID0 stripes
        -run advanced
        -simulate RAID0 -stripe 1024 -write 100 -type seq
        -matrix col -num_small 0

issues

skgfrsaiolmt failed

orion_warm_cache: Warming cache failed. Continuing storax_skgfr_init: skgfrsaiolmt failed: OER 27090: please look up error in Oracle documentation Linux-x86_64 Error: 2: No such file or directory Additional information: 3 Additional information: 4096 Additional information: -1728767552 lun_init: IO init failed:rwbase_lio_init_ctx: lun_init failed rwbase_rwluns: rwbase_lio_init_ctx failed orion_thread_main: rw_luns failed Non test error occurred Orion exiting

.

orion_warm_cache: Warming cache failed. Continuing rwbase_run_test: rwbase_reap_req failed rwbase_run_process: rwbase_run_test failed rwbase_rwluns: rwbase_run_process failed orion_warm_cache: Warming cache failed. Continuing storax_skgfr_init: skgfrsaiolmt failed: OER 27090: please look up error in Oracle documentation Linux-x86_64 Error: 2: No such file or directory Additional information: 3 Additional information: 4096 Additional information: -1728767552 lun_init: IO init failed:rwbase_lio_init_ctx: lun_init failed rwbase_rwluns: rwbase_lio_init_ctx failed orion_thread_main: rw_luns failed Non test error occurred Orion exiting


cat /proc/sys/fs/aio-max-nr 65536 echo $(( 65536 * 2 )) > /proc/sys/fs/aio-max-nr


aio-nr & aio-max-nr [1]

aio-nr is the running total of the number of events specified on the io_setup system call for all currently active aio contexts. If aio-nr reaches aio-max-nr then io_setup will fail with EAGAIN. Note that raising aio-max-nr does not result in the pre-allocation or re-sizing of any kernel data structures.


http://forums.oracle.com/forums/thread.jspa?threadID=952126

ORION: ORacle IO Numbers -- Version 11.1.0.7.0 sandboxtest_20090901_1216 Test will take approximately 30 minutes Larger caches may take longer

storax_skgfr_init: skgfrsaiolmt failed: OER 27090: please look up error in Oracle documentation Linux-x86_64 Error: 2: No such file or directory Additional information: 3 Additional information: 4096 Additional information: -1323009632 lun_init: IO init failed:rwbase_lio_init_ctx: lun_init failed rwbase_rwluns: rwbase_lio_init_ctx failed orion_thread_main: rw_luns failed Non test error occurred Orion exiting

See if helps:http://chandrapabba.blogspot.com/2009/07/ora-27090-message-27090-not-found-on.html


http://chandrapabba.blogspot.com/2009/07/ora-27090-message-27090-not-found-on.html

Here is how it looked like before starting up an 10.2.0.4 instance:

  1. /sbin/sysctl -a |grep aio

fs.aio-max-nr = 1100 #---I reset it to this value from default. fs.aio-nr = 0

When the instance was started, the value looked like this:

  1. /sbin/sysctl -a |grep aio

fs.aio-max-nr = 1100 #---I reset it to this value from default. fs.aio-nr = 1060

As soon as it hit the ceiling, the above mentioned error was reported in the alert log. When I raised the value, the error message disappeared.


OTN Discussion Forums : Orion test problem - http://forums.oracle.com/forums/thread.jspa?threadID=966193

echo 4194304 > /proc/sys/fs/aio-max-nr

keywords

oracle orion