Oracle ORIONの使用方法 (Windowsディスクベンチマーク)

120px-Crystal_Clear_app_database

Oracle ORIONの使用方法 (Windowsディスクベンチマーク)Oracle社が提供するディスクIO性能ベンチマークツール「ORION」を用いて、Windows環境上でディスクのIO性能を測定する際の手順メモです。

「ORION」は、Oracle DatabaseのIO制御プログラムをベースにして作成されており、RDBMSの様々なワークロードパターンをシミュレートしてディスクIO性能を測定できる優れたベンチマークソフトです。Windows版・Linux版・Solaris版・AIX版・HP-UX版が提供されており、異なるプラットフォーム間でディスクIO性能を比較する用途でも利用できます。

動作確認環境
  • Windows XP Professional SP3
    Filesystem : NTFS 3.1 (5.1)
  • Windows 7 Home Premium Edition SP1 (x64)
    Filesystem : NTFS 3.1 (5.1)
  • Windows Server 2008 R2 Standard Edition SP1 (x64)
    Filesystem : NTFS 3.1 (5.1)
  • Oracle ORION 10.2.0.1.0
ORION インストールパッケージのダウンロード URL

次のURLより、Windows用のインストールパッケージ「orion10.2_windows.msi」をダウンロードして下さい。マニュアル(英語)も提供されていますので、詳細を確認したい方は同時にダウンロードしておくと良いでしょう。ダウンロード時には、オラクルWebアカウントでのログインが必要です。
http://www.oracle.com/technetwork/jp/topics/index-096484-ja.html

ORION インストール

インストール

インストールパッケージ「orion10.2_windows.msi」を実行して、画面の指示に従ってインストールします。標準では「C:\Program Files\Oracle\Orion」フォルダ配下にインストールされます。

誤解されることが多いのですが、ORIONは単体で動作するので、Oracle DatabaseやOracle Clientのインストールは不要です。

Oracle_ORION_Installation_on_Windows_01

Oracle_ORION_Installation_on_Windows_02

Oracle_ORION_Installation_on_Windows_03

Oracle_ORION_Installation_on_Windows_04
 

他サーバへの展開

サーバ環境等に対して.msiを実行したくないという場合には、1台目で展開された「C:\Program Files\Oracle\Orion」フォルダを他サーバへ丸ごとコピーして使用することもできます。

Oracle_ORION_Installation_Folder
 

インストール後の動作確認

コマンドプロンプトを起動して、ORIONをインストールしたフォルダ配下に移動します。
「orion」コマンドを実行して、次のメッセージが表示されることを確認します。

C:\> cd C:\Program Files\Oracle\Orion
C:\Program Files\Oracle\Orion> orion
ORION: ORacle IO Numbers -- Version 10.2.0.1.0
Parse error: View help screen using orion -help.
C:\Program Files\Oracle\Orion>

ORION 実行準備

計測用フォルダ・計測用ファイルの作成

ディスクIO性能を計測するパーティション(ドライブ)上に計測用フォルダと計測用ファイルを作成します。正確な計測を行うために、計測用ファイルの合計サイズはOS等のファイルキャッシュに乗らない容量を確保した方が良いでしょう。可能であれば、Oracle Databaseのデータファイル相当のファイル容量・構成で作成することが推奨されます。

ここでは、例として「10GB * 2ファイル」の計測用ファイルを作成しています。なお、FSUTILユーティリティの実行には管理者権限が必要です。

C:\Program Files\Oracle\Orion> md C:\temp
C:\Program Files\Oracle\Orion>
C:\Program Files\Oracle\Orion> md C:\temp\orion-test
C:\Program Files\Oracle\Orion>
C:\Program Files\Oracle\Orion>
C:\Program Files\Oracle\Orion> fsutil file createnew C:\temp\orion-test\testfile-010.dbf 10737418240
ファイル C:\temp\orion-test\testfile-010.dbf が作成されました
C:\Program Files\Oracle\Orion>
C:\Program Files\Oracle\Orion>
C:\Program Files\Oracle\Orion> fsutil file createnew C:\temp\orion-test\testfile-020.dbf 10737418240
ファイル C:\temp\orion-test\testfile-020.dbf が作成されました
C:\Program Files\Oracle\Orion>

 

lunファイルの作成

ORIONをインストールしたフォルダ配下に「orion-test.lun」ファイルを作成します。同ファイルには次のように計測用ファイル一式を記載して下さい。以上で、ORIONの実行準備は完了です。

C:\temp\orion-test\testfile-010.dbf
C:\temp\orion-test\testfile-020.dbf

ORION 実行(ディスクIO性能の計測)

simple モード

simpleモードでORIONを実行します。simpleモードでは、ディスク読み込み(read)のみのワークロードをシミュレートしてディスクIO性能を測定します。

「-num_disks」オプションによって負荷をどこまで上げるかを制御可能です。対象のディスク数が多い場合や、SSD等のIO性能が高い領域を計測する際は「-num_disks」の値を増やしてみて下さい。次のパラメーターでORIONを実行した場合、実行時間は約9分間です。実行中は1CPUの使用率が100%に張り付くので注意して下さい。

C:\Program Files\Oracle\Orion> orion -run simple -testname orion-test -num_disks 1
ORION: ORacle IO Numbers -- Version 10.2.0.1.0
Test will take approximately 9 minutes
Larger caches may take longer
C:\Program Files\Oracle\Orion>

 
実行完了後、ORIONをインストールしたフォルダ配下に次の測定結果ファイル(5ファイル)が作成されます。まずはsummaryファイルを参照して、測定結果のサマリを確認して下さい。

  • orion-test_iops.csv
  • orion-test_lat.csv
  • orion-test_mbps.csv
  • orion-test_summary.txt
  • orion-test_trace.txt

なお、readのみが実行されるsimpleモードでは測定結果に異常値が記録されるケースがあります。simpleモードの測定結果は鵜呑みせず、advancedモードでwriteを混ぜて実行した場合と比較して測定結果の妥当性を確認して下さい。simpleモードで極端な値が出る環境では、simpleモードはORIONの動作確認程度の位置付けにした方が無難でしょう。
 

advanced モード

advancedモードでORIONを実行します。advancedモードでは、実行オプションでパラメーターを指定することによって、RDBMSの様々なワークロードパターンをシミュレートしてディスクIO性能を測定することができます。

ここでは、例として「ディスク書き出し(write)処理の割合を20%」に設定して実行しています。

C:\Program Files\Oracle\Orion> orion -run advanced -testname orion-test -write 20 -num_disks 1
ORION: ORacle IO Numbers -- Version 10.2.0.1.0
Test will take approximately 9 minutes
Larger caches may take longer
C:\Program Files\Oracle\Orion>

ORION 実行結果の見方

summary ファイル

ORIONによる負荷テストの終了後、summaryファイルに次のような実行結果が出力されます。
この実行結果からは、測定対象のディスク装置が測定時に指定したワークロードに対して「最高 49.46 MB/sec」「最高 130 IOPS」「最短 17.30 msec」のディスクIO性能を発揮できることが分かります。

  • Maximum Large MBPS:最大データ転送帯域(MB/sec)
  • Maximum Small IOPS:最大IO回数(IOPS)
  • Minimum Small Latency:最小応答遅延時間(msec)

summaryファイルに出力された値を見て測定結果の概要を確認した後、さらに詳細な測定結果をmbps・iops・latの各ファイルで確認します。

ORION VERSION 10.2.0.1.0
Commandline:
-run advanced -testname orion-test -write 20 -num_disks 1
This maps to this test:
Test: orion-test
Small IO size: 8 KB
Large IO size: 1024 KB
IO Types: Small Random IOs, Large Random IOs
Simulated Array Type: CONCAT
Write: 20%
Cache Size: Not Entered
Duration for each Data Point: 60 seconds
Small Columns:,      0
Large Columns:,      0,      1,      2
Total Data Points: 8
Name: C:\temp\orion-test\testfile-010.dbf	Size: 2147483648
Name: C:\temp\orion-test\testfile-020.dbf	Size: 2147483648
2 FILEs found.
Maximum Large MBPS=49.46 @ Small=0 and Large=2
Maximum Small IOPS=130 @ Small=5 and Large=0
Minimum Small Latency=17.30 @ Small=2 and Large=0

 

mbps ファイル

mbpsファイルには、「Large IO」時のデータ転送帯域(MB/sec)が記録されています。
ORIONが「Large IO」の負荷レベルを段階的に上げながら測定していることが分かります。この実行結果では「2」までの測定を行っています。負荷が掛かり切っていないようなら、「-num_disks」オプションで指定する値を増やしてみて下さい。

Large/Small,      0,      1,      2,      3,      4,      5
          1,  48.48
          2,  49.46

 

iops ファイル

iopsファイルには、「Small IO」時のIO回数(IOPS)が記録されています。
ORIONが「Small IO」の負荷レベルを段階的に上げながら測定していることが分かります。この実行結果では「5」までの測定を行っていますが、「-num_disks」オプションの値を増やして負荷レベルを上げればもう少しIOPS性能が伸びそうな傾向が見て取れます。

Large/Small,      1,      2,      3,      4,      5
          0,     36,    115,    119,    122,    130
          1
          2

 

lat ファイル

latファイルには、「Small IO」時の応答遅延時間(msec)が記録されています。

Large/Small,      1,      2,      3,      4,      5
          0,  27.09,  17.30,  25.20,  32.67,  38.43
          1
          2

ORION の色々な使い方

負荷レベルを指定して「Small IO」のみを計測する(-num_smallオプション)

「Small IO」時のIOPS性能と応答遅延時間(msec)を重点的に確認したい時には、「-num_small」オプションが役立ちます。この例では「Small IO」のみのワークロードを指定して、負荷レベルを段階的に上げながら負荷レベル「1~20」の計測を行っています。

C:\Program Files\Oracle\Orion> orion -run advanced -testname orion-test -write 20 -num_disks 1 -matrix max -num_small 20 -num_large 0
「Small IO」のI/Oサイズを指定して計測する(-size_smallオプション)

「Small IO size」のデフォルト値は「8KB」です。これはOracleデータベースのI/Oリクエストサイズのデフォルト値であり、ORION実行時も多くの場合は「Small IO size」を変更する必要はありません。

特別な要件があり「Small IO size」を変更して計測する場合は、「-size_small」オプション(単位:KB)を使用します。この例では「Small IO size」を「4KB」に指定して計測を行っています。

C:\Program Files\Oracle\Orion> orion -run advanced -testname orion-test -write 20 -num_disks 1 -matrix max -num_small 20 -num_large 0 -size_small 4
負荷レベルを指定して「Large IO」のみを計測する(-num_largeオプション)

「Large IO」時のデータ転送帯域(MB/sec)を重点的に確認したい時には、「-num_large」オプションが役立ちます。この例では「Large IO」のみのワークロードを指定して、負荷レベルを段階的に上げながら負荷レベル「1~10」の計測を行っています。

C:\Program Files\Oracle\Orion> orion -run advanced -testname orion-test -write 20 -num_disks 1 -matrix max -num_small 0 -num_large 10
負荷レベルを簡易に指定して計測する(-num_disksオプション)

負荷レベルを簡易に指定したい時には、「-num_disks」オプションを使います。「-num_disks 2」と指定した場合は、small I/Oでは10スレッドまで、large I/Oでは4スレッドまで、段階的にスレッド数を増やして計測を行います。

こちらは、SSDに対してread/writeが混在する高負荷を30分以上連続して掛けながら、SSDの速度性能を測定する際のコマンド例です。(参考 : ORION高負荷ベンチマーク実行手順 – SSD 240GB級

C:\Program Files\Oracle\Orion> orion -run advanced -testname orion-test -write 20 -num_disks 2 -duration 120 -size_small 4
ORION 実行オプション一覧
C:\Program Files\Oracle\Orion> orion -help
ORION: ORacle IO Numbers -- Version 10.2.0.1.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.
Parameters 'run', 'testname', and 'num_disks' are mandatory. Defaults
are indicated for all other parameters.  For additional information on
the user interface, see the Orion User Guide.
.lun should contain a carriage-return-separated list of LUNs
The output files for a test run are prefixed by _.
The output files are:
_summary.txt - Summary of the input parameters along with min. small
                         latency, max large MBPS and/or max. small IOPS.
_mbps.csv - Performance results of large IOs in MBPS
_iops.csv - Performance results of small IOs in IOPS
_lat.csv - Latency of small IOs
_tradeoff.csv - Shows large MBPS / small IOPS combinations that can
                          be achieved at certain small latencies
_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)
                        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
testname                Name of the test run
num_disks               Number of disks (physical spindles)
Optional parameters:
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 -testname  -num_disks <#>
For a basic set of data
        -run normal -testname  -num_disks <#>
To generate combinations of 32KB and 1MB reads to random locations:
        -run advanced -testname  -num_disks <#>
        -size_small 32 -size_large 1024 -type rand      -matrix detailed
To generate multiple sequential 1MB write streams, simulating 1MB RAID0 stripes
        -run advanced -testname  -num_disks <#>
        -simulate RAID0 -stripe 1024 -write 100 -type seq
        -matrix col -num_small 0

240GB級SSDベンチマーク結果

東芝SSD HG5d 256GB 高負荷ベンチマーク速度比較結果
Intel SSD DC S3500 Series 240GB 高負荷ベンチマーク速度比較結果
Intel SSD 730 Series 240GB 高負荷ベンチマーク速度比較結果
Intel SSD 530 Series 240GB 高負荷ベンチマーク速度比較結果
Intel SSD 520 Series 240GB 高負荷ベンチマーク速度比較結果
Intel SSD 335 Series 240GB 高負荷ベンチマーク速度比較結果
PLEXTOR PX-256M5P 256GB 高負荷ベンチマーク速度比較結果
Samsung SSD 840 PRO 256GB 高負荷ベンチマーク速度比較結果
SSD I/Oブロックサイズの調整によるチューニング効果検証 (DC S3700編)
SSD I/Oブロックサイズの調整によるチューニング効果検証 (東芝THNSNS240GBSP編)

関連記事

Oracle ORIONの使用方法 (Linuxディスクベンチマーク)
HDDベンチマーク手順+性能測定結果一覧 (hdparm,dd,bonnie++)
姫野ベンチの使用方法・測定結果一覧 (Windows編)
TrueCrypt CPUベンチマークの使用方法・測定結果一覧
Windows7の遅いXPモードを劇的に高速化する方法

「Windows」カテゴリーの記事一覧

参考になるサイト

Oracle Databaseパフォーマンス・チューニング・ガイド – I/O構成および設計
Oracle社公式のORIONの日本語ガイド。「8.4 Oracle Orion測定ツールによるI/O測定」を参照。