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のインストールは不要です。
他サーバへの展開
サーバ環境等に対して.msiを実行したくないという場合には、1台目で展開された「C:\Program Files\Oracle\Orion」フォルダを他サーバへ丸ごとコピーして使用することもできます。
インストール後の動作確認
コマンドプロンプトを起動して、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モードを劇的に高速化する方法
参考になるサイト
Oracle Databaseパフォーマンス・チューニング・ガイド – I/O構成および設計
Oracle社公式のORIONの日本語ガイド。「8.4 Oracle Orion測定ツールによるI/O測定」を参照。