Oracle ORION模擬Database負載測試儲存效能
Oracle ORION模擬Database負載測試儲存效能
http://blog.itpub.net/23135684/viewspace-1137724/
FIO – IO壓力測試工具
https://blog.csdn.net/younger_china/article/details/71129541
Oracle ORION(Oracle IO Number
)是Oracle提供的儲存效能測試工具,Oracle並不對其提供技術支援。該工具的最大特點在於可以在沒安裝Oracle Database
軟體的情況下,模擬Oracle負載,測試
隨機或順序訪問指定
大小塊的效能,效能指標包括:IOPS,MBPS,
Latency(延遲時間)。
從Oracle Database 11g開始,ORION工具被整合
到GI和Database軟體中,所以在$GI_HOME/bin和$ORACLE_HOME/bin目錄下都可以找到這個工具。如果是Oracle Database
10gR2需要手動下載ORION工具。
1.下面是$GI_HOME/bin目錄下的ORION工具。
[root@rhel1 ~]#cd /u01/app/11.2.0/grid/bin
[root@rhel1 bin]# ./orion -help
ORION: ORacle IO Numbers -- Version 11.2.0.2.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 a test for a specific mix of small and large
IO loads sustained for a duration. An Orion test consists of multiple
data point tests. These data point tests can be represented as a
two-dimensional matrix. Each column in the matrix represents data
point tests with the same small IO load, but varying large IO loads.
Each row represents data point tests with the same large IO load, but
varying small IO loads. An Orion test can be for a single point, a
single row, a single 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.
is the prefix used for all input and output filenames. By
default, it is 'orion'. It can be specified with the 'testname'
parameter.
.lun should contain a carriage-return-separated list of LUNs.
The output files for a test run are prefixed by _ where
date is "yyyymmdd_hhmm".
The output files are:
__summary.txt - Summary of the input parameters, along with
the minimum small IO latency (in usecs), the maximum
MBPS, and the maximum IOPS observed.
__mbps.csv - Performance results of large IOs in MBPS.
__iops.csv - Performance results of small IOs in IOPS.
__lat.csv - Latency of small IOs in microseconds.
__hist.csv - Histogram of IO latencies.
__trace.txt - Extended, unprocessed output.
WARNING: IF YOU ARE PERFORMING WRITE TESTS, BE PREPARED TO LOSE ANY DATA STORED
ON THE LUNS.
如果執行寫測試,儲存在LUN中的資料會丟失!
Mandatory parameters:
run Type of workload to run (simple, normal, advanced, dss, oltp).
simple - Tests random small (8K) IOs at various loads,
then random large (1M) IOs at various loads.
normal - Tests combinations of random small (8K) IOs and
random large (1M) IOs.
advanced - Tests the workload specified by the user
using optional parameters.
dss - Tests with random large (1M) IOs at increasing
loads to determine the maximum throughput.
oltp - Tests with random small (8K) IOs at increasing
loads to determine the maximum IOPS.
該版本的ORION工具只有run是必選引數。
simple 在可變負載的情況下測試隨機小IO(8K),然後再在可變負載的情況下測試隨機大IO(1M)的效能。
normal
測試隨機小IO(8K)
和隨機大IO(1M)的效能。
advanced 透過使用可選的引數自定義負載情況。
dss 在負載不斷增加
的情況下測試隨機大IO(1M),找出最大的吞吐量。
oltp 在負載不斷增加的情況下測試隨機小IO(8K),找出最大的IOPS值。
Optional parameters:
testname Name of the test run.
num_disks Number of disks (physical spindles). This number is
used to gauge the range of loads that Orion should test
at. Increasing this parameter results in Orion using
heavier IO loads. Default is the number of LUNs in
.lun.
預設測試
.lun包含的所有LUN。
size_small Size of small IOs in KB. Default is 8.
預設8K。
size_large Size of large IOs in KB. Default is 1024.
預設1024K。
type Type of large IOs (rand, seq). Default is rand.
rand - Randomly distributed large IOs.
seq - Sequential streams of large IOs.
num_streamIO Number of concurrent IOs per stream. This parameter is only
used if -type is seq. Default is 4.
simulate Orion tests on a virtual LUN formed by combining the
specified LUNs in one of these ways. This parameter is
typically only used if -type is seq. Default is concat.
concat - A serial concatenation of the LUNs. Each
sequential stream issues IOs to only one LUN.
raid0 - A RAID-0 mapping across the LUNs. Each
sequential stream issues IOs across all LUNs,
using RAID-0 striping.
write Percentage of IOs that are writes (SEE WARNING ABOVE).
Default is 0.
cache_size Size in MBs of the array's cache.
Unless this option is set to 0, Orion issues a number
of unmeasured, random IOs before each large sequential
data point. These IOs fill up the storage array's cache
(if any) with random data so that IOs 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 performed until
cache_size MBs of IO have been read or written.
Default behavior is to issue 2 minutes of unmeasured random
IOs before each data point.
據說在AIX平臺,cache_size的值對測試結果影響較大,並不能真實的反應儲存的效能;在Linux平臺不存在此問題,
測試的結果較準確。
duration Duration of each data point in seconds. Default is 60.
duration指定每個資料指標持續的時間,預設60秒。
num_small Number of outstanding small IOs. This parameter controls the
small IO load. Only used if -matrix is point, col, or max.
No default.
num_large This parameter controls the large IO load.
For -type rand, number of outstanding large IOs.
For -type seq, number of sequential IO streams. Only used
if -matrix is point, row, or max. No default.
matrix An Orion test consists of multiple data point tests. These data
point tests can be represented as a two-dimensional matrix.
Each column in the matrix represents data point tests with
the same small IO load, but varying large IO loads. Each
row represents data point tests with the same large IO load,
but varying small IO loads. An Orion test can be for a
single point, a single row, a single column, or the whole
matrix, depending on the matrix option setting below.
Default is basic.
basic - Test small IOs only, then large IOs only.
detailed - Test entire matrix.
point - Test with num_small small IOs, num_large large
IOs.
col - Test a varying large IO load with num_small
small IOs.
row - Test a varying small IO load with num_large
large IOs.
max - Test varying loads up to the num_small and
num_large limits.
verbose Prints tracing information to standard output if set.
Not set by default.
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 RAID0 striping
-run advanced
-simulate RAID0 -write 100 -type seq
-matrix col -num_small 0
2.下面是實際的測試操作。
1).建立LUN配置檔案。
在~目錄下建立orion.lun檔案,將如下內容新增到檔案中:
/dev/sdj1
在沒有指定名稱的情況下,orion是預設名稱,.lun是固定的副檔名;執行命令時如果指定testname引數,那麼對應的值不需要指定.lun副檔名。
2).執行orion測試。
[root@rhel1 ~]# /u01/app/11.2.0/grid/bin/orion -run simple
ORION: ORacle IO Numbers -- Version 11.2.0.2.0
orion_20140407_2028
Calibration will take approximately 9 minutes.
Using a large value for -cache_size may take longer.
這裡顯示測試時間為9分鐘,ORION測試時長無法控制。
Maximum Large MBPS=35.13 @ Small=0 and Large=2
這句的含義是:最大吞吐量為35.13MB,是在測試第二個大IO(1M
)得出的值,檢視生成的trace檔案可以看到有關第二個大IO的詳細資訊。
Maximum Small IOPS=86 @ Small=5 and Large=0
Small Read Latency: avg=57862 us, min=12943 us, max=270920 us, std dev=25577 us @ Small=5 and Large=0
這段的含義是:最大小IO的IOPS值為86,是在測試第5個小IO(8K)得出的值。
小IO讀的延遲情況,平均值/最小值/最大值。
有關時間單位的說明:
國際單位制詞頭經常與秒結合以做更細微的劃分,例如ms(毫秒,千分之一秒)、us(微秒,百萬分之一秒)和ns(納秒,十億分之一秒)。雖然國際單位制詞頭雖然也可以用於擴增時間,例如ks(千秒)、Ms(百萬秒)和Gs(十億秒),但實際上很少這樣子使用,大家都還是習慣用60進位制的分、時和24進位制的日做為秒的擴充。
Minimum Small Latency=15313 usecs @ Small=1 and Large=0
Small Read Latency: avg=15313 us, min=726 us, max=231989 us, std dev=24119 us @ Small=1 and Large=0
這段的含義是:小IO測試的最小延遲是15313微妙(也就是15毫秒),是在測試第1個小IO得出的值。
小IO讀測試的延遲情況,平均值/最小值/最大值。
Small Read / Write Latency Histogram @ Small=5 and Large=0
下面是小IO讀寫延遲柱狀圖:
Latency: # of IOs (read) # of IOs (write)
0 - 1 us: 0 0
2 - 4 us: 0 0
4 - 8 us: 0 0
8 - 16 us: 0 0
16 - 32 us: 0 0
32 - 64 us: 0 0
64 - 128 us: 0 0
128 - 256 us: 0 0
256 - 512 us: 0 0
512 - 1024 us: 14 0
1024 - 2048 us: 21 0
2048 - 4096 us: 257 0
4096 - 8192 us: 1220 0
8192 - 16384 us: 1994 0
16384 - 32768 us: 82 0
32768 - 65536 us: 158 0
65536 - 131072 us: 127 0
131072 - 262144 us: 49 0
262144 - 524288 us: 0 0
524288 - 1048576 us: 0 0
1048576 - 2097152 us: 0 0
2097152 - 4194304 us: 0 0
4194304 - 8388608 us: 0 0
8388608 - 16777216 us: 0 0
16777216 - 33554432 us: 0 0
33554432 - 67108864 us: 0 0
67108864 - 134217728 us: 0 0
134217728 - 268435456 us: 0 0
大部分的IO延遲都處在
8192 - 16384us之間。
命令執行完成之後,在執行命令時的目錄下產生了如下的檔案:
[root@rhel1 ~]# ll
total 104
-rw------- 1 root root 1076 Jun 17 2011 anaconda-ks.cfg
-rwxrwxrwx 1 root root 116 May 8 2009 ctss.sh
drwxr-xr-x 2 root root 4096 Jun 17 2011 Desktop
-rw-r--r-- 1 root root 33383 Jun 17 2011 install.log
-rw-r--r-- 1 root root 3682 Jun 17 2011 install.log.syslog
-rw-r----- 1 root root 580 Mar 24 00:34 oks.log
drwxr-xr-x 3 root root 4096 May 13 2012 oradiag_root
-rw-r--r-- 1 root root 7004 Apr 7 20:35
orion_20140407_2028_hist.txt 柱狀圖情況,包括每個資料指標操作期間(預設60秒)的IO延遲柱狀圖
-rw-r--r-- 1 root root 526 Apr 7 20:35
orion_20140407_2028_iops.csv IOPS情況
-rw-r--r-- 1 root root 554 Apr 7 20:35
orion_20140407_2028_lat.csv 延遲情況
-rw-r--r-- 1 root root 498 Apr 7 20:35
orion_20140407_2028_mbps.csv MBPS情況
-rw-r--r-- 1 root root 1743 Apr 7 20:35
orion_20140407_2028_summary.txt 概要
-rw-r--r-- 1 root root 3242 Apr 7 20:35
orion_20140407_2028_trace.txt 詳細的跟蹤檔案
-rw-r--r-- 1 root root 10 Apr 7 20:04 orion.lun
3).檢視測試結果。
a).IOPS測試結果:
我們可以非常容易的將orion_20140407_2028_iops.csv檔案以圖的形式展現出來:
最高的IOPS大概為85,有些文章說橫座標表示的是併發度,我們可以認為它是一個負載強度。
b).Latency測試結果:
將orion_20140407_2028_lat.csv資料以圖表的形式展現出來:
IO延遲在50~60毫秒之間。
c).MBPS測試結果:
檢視orion_20140407_2028_mbps.csv檔案:
24.98表示小IO的吞吐量。
35.12表示大IO的吞吐量。
3.
使用DD對磁碟進行快速而直接的測試。
執行下面的命令測試檔案系統的寫效能:
[root@homeserver /]# time sh -c "dd if=/dev/zero of=dd-test-file bs=8k count=1000000 && sync"
1000000+0 records in
1000000+0 records out
8192000000 bytes (8.2 GB) copied, 139.084 seconds, 58.9 MB/s
real 2m26.057s(表示真實時間
)
user 0m1.360s
sys 0m24.854s
參考文章:
--end--
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31397003/viewspace-2284063/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Orion - oracle提供的測試io效能的工具Oracle
- 【轉】Orion - oracle提供的測試io效能的工具Oracle
- Oracle ORION IO 測試工具Oracle
- (一)效能測試(壓力測試、負載測試)負載
- 模擬測試生成Apache Kafka負載的最佳工具:KLoadGenApacheKafka負載
- Postmark測試後端儲存效能後端
- 效能測試、負載測試、壓力測試有什麼區別?負載
- [原創]儲存過程效能測試儲存過程
- 負載,效能測試工具-Gatling負載
- 多通道負載測試和效能評估?負載
- ORACLE 11G負載均衡測試Oracle負載
- mysqlslap 負載模擬客戶端MySql負載客戶端
- 使用dbms_profiler測試儲存過程效能儲存過程
- 軟體測評中心▏效能測試、壓力測試、負載測試有什麼區別?負載
- 【車載測試】硬體在環模擬(HiL)
- 負載測試工具Ripplet負載
- 使用Docker+Nginx模擬負載均衡DockerNginx負載
- 【工具】ORION I/O 測試工具
- 模擬測試框架-Mockito框架Mockito
- 使用OpenFiler來模擬儲存配置RAC中ASM共享盤及多路徑(multipath)的測試ASM
- 分割槽儲存管理模擬實驗
- 智駕模擬測試實戰之自動泊車HiL模擬測試
- TestLoadBalancer測試均衡負載負載
- 【JDBC】java連線池模擬測試 連線oracleJDBCJavaOracle
- 效能測試必備知識(3)- 深入理解“平均負載”負載
- ddosify:用Golang編寫的高效能負載測試工具Golang負載
- ---ios模擬弱網測試---iOS
- 效能測試公開課來啦!從效能測試方案到效能調優,從負載均衡到中介軟體測試,全方位講解效能測試核心內容負載
- Oracle 共享儲存掛載Oracle
- 介面測試,負載測試,併發測試,壓力測試區別負載
- oracle 匿名儲存過程插入大量測試資料Oracle儲存過程
- 嘗試用 docker 模擬負載均衡完整版(踩著石頭過河)Docker負載
- 由國產效能測試工具WEB壓力測試模擬能力對比讓我想到的Web
- MySQL federated儲存引擎測試MySql儲存引擎
- Oracle進行模擬測試資料的一個例子Oracle
- JMH模擬鎖高爭用,長臨界區,測試鎖效能
- 安卓小程式模擬定位測試安卓
- 單元測試模擬框架Mockito框架Mockito