磁盤性能 IOPS和吞吐量說明及raid10和raid5性能比較

二. IOPS 說明    linux

2.1 IOPS (Input/OutputPer Second)數據庫

      IOPS 即每秒的輸入輸出量(或讀寫次數),是衡量磁盤性能的主要指標之一。app

      IOPS是指單位時間內系統能處理的I/O請求數量,通常以每秒處理的I/O請求數量爲單位,I/O請求一般爲讀或寫數據操做請求。隨機讀寫頻繁的應用,dom

如OLTP(OnlineTransaction Processing),IOPS是關鍵衡量指標。ide

      另外一個重要指標是數據吞吐量(Throughput),指單位時間內能夠成功傳輸的數據數量。對於大量順序讀寫的應用,如VOD(Video On Demand),則更關注吞吐量指標。工具

      傳統磁盤本質上一種機械裝置,如FC, SAS, SATA磁盤,轉速一般爲5400/7200/10K/15K rpm不等。影響磁盤的關鍵因素是磁盤服務時間,即磁盤完成一個I/O請求所花費的時間,它由尋道時間、旋轉延遲和數據傳輸時間三部分構成。性能

(1)尋道時間測試

       Tseek是指將讀寫磁頭移動至正確的磁道上所須要的時間。尋道時間越短,I/O操做越快,目前磁盤的平均尋道時間通常在3-15ms。this

(2)旋轉延遲spa

      Trotation是指盤片旋轉將請求數據所在扇區移至讀寫磁頭下方所須要的時間。旋轉延遲取決於磁盤轉速,一般使用磁盤旋轉一週所需時間的1/2表示。

好比,7200 rpm的磁盤平均旋轉延遲大約爲60*1000/7200/2 = 4.17ms,而轉速爲15000 rpm的磁盤其平均旋轉延遲約爲2ms。

(3)數據傳輸時間

      Ttransfer是指完成傳輸所請求的數據所須要的時間,它取決於數據傳輸率,其值等於數據大小除以數據傳輸率。

     目前IDE/ATA能達到133MB/s(MBPS),SATA II可達到300MB/s的接口數據傳輸率,數據傳輸時間一般遠小於前兩部分時間。

      IOPS(每秒IO次數) = 1s/(尋道時間+旋轉延遲+數據傳輸時間)

所以,理論上能夠計算出磁盤的最大IOPS,即IOPS = 1000ms/ (Tseek + Troatation),忽略數據傳輸時間。假設磁盤平均物理尋道時間爲3ms, 磁盤轉速爲7200,10K,15Krpm,則磁盤IOPS理論最大值分別爲:

IOPS = 1000 / (3 + 60000/7200/2)  = 140

IOPS = 1000 / (3 + 60000/10000/2) = 167

IOPS = 1000 / (3 + 60000/15000/2) = 200


2.2 固態硬盤的IOPS

      固態硬盤SSD是一種電子裝置, 避免了傳統磁盤在尋道和旋轉上的時間花費,存儲單元尋址開銷大大下降,所以IOPS能夠很是高,可以達到數萬甚至數十萬。

     實際測量中,IOPS數值會受到不少因素的影響,包括I/O負載特徵(讀寫比例,順序和隨機,工做線程數,隊列深度,數據記錄大小)、系統配置、操做系統、磁盤驅動等等。

     所以對比測量磁盤IOPS時,必須在一樣的測試基準下進行,即使如何也會產生必定的隨機不肯定性。


一般狀況下,IOPS可細分爲以下幾個指標:

Toatal IOPS:混合讀寫和順序隨機I/O負載狀況下的磁盤IOPS,這個與實際I/O狀況最爲相符,大多數應用關注此指標。

Random Read IOPS:100%隨機讀負載狀況下的IOPS。

Random WriteIOPS:100%隨機寫負載狀況下的IOPS。

Sequential ReadIOPS:100%順序負載讀狀況下的IOPS。

Sequential WriteIOPS:100%順序寫負載狀況下的IOPS。

 

三.ORION 工具說明

ORION (OracleI/O Calibration Tool) Oracle 公司推出的一個校準數據庫的存儲系統 I/O 性能的獨立工具。有關該工具的說明,參考:

Oracle ORION IO 測試工具

http://blog.csdn.net/tianlesoftware/article/details/5965331


 

咱們使用ORION 工具測試一下看看:

[root@qs-xe-dzora-pd software]# cat dave.lun

/dev/sdb1

[root@qs-xe-dzora-pd software]#  ./orion_linux_x86-64 -run advanced -testname dave -num_disks 2 

ORION: ORacle IO Numbers -- Version11.1.0.7.0

dave_20111026_2026

Test will take approximately 16 minutes

Larger caches may take longer



查看生成的結果:

[root@qs-xe-dzora-pd software]# ls dave*

dave_20111026_2026_iops.csv  dave_20111026_2026_summary.txt  dave.lun_20111026_2025_summary.txt

dave_20111026_2026_lat.csv   dave_20111026_2026_trace.txt

dave_20111026_2026_mbps.csv  dave.lun


[root@qs-xe-dzora-pd software]# cat dave_20111026_2026_summary.txt

ORION VERSION 11.1.0.7.0

Commandline:

-run advanced -testname dave -num_disks 2

This maps to this test:

Test: dave

Small IO size: 8 KB

Large IO size: 1024 KB

IO Types: Small Random IOs, Large RandomIOs

Simulated Array Type: CONCAT

Write: 0%

Cache Size: Not Entered

Duration for each Data Point: 60 seconds

Small Columns:,      0

Large Columns:,      0,     1,      2,      3,     4

Total Data Points: 15

Name: /dev/sdb1 Size: 449495069184

1 FILEs found.

Maximum Large MBPS=159.61 @ Small=0 andLarge=4         #<----159.61M爲吞吐量

Maximum Small IOPS=534 @ Small=10 andLarge=0

Minimum Small Latency=4.97 @ Small=1 andLarge=0


這裏顯示的吞吐量是160MBPS. IOPS 爲534.


-----------------------------------------

實驗:4塊物理硬盤,4塊作raid5和2塊盤分別raid0+1的讀性能比較。因爲寫會往本地盤寫入數據,暫時沒有測試
工具:Oracle orign
4塊物理盤作 raid 5
Name: /dev/sda2 Size: 896884531200
1 FILEs found.

Maximum Large MBPS=93.94 @ Small=0 and Large=2
Maximum Small IOPS=425 @ Small=5 and Large=0
Minimum Small Latency=7.63 @ Small=1 and Large=0

4塊物理盤,兩兩分別做raid0,算做一個小型的raid0+1,測試結果以下

Name: /dev/sda2 Size: 298388482560
Name: /dev/sdb1 Size: 298495378944
2 FILEs found.

Maximum Large MBPS=205.89 @ Small=0 and Large=4
Maximum Small IOPS=835 @ Small=10 and Large=0
Minimum Small Latency=5.33 @ Small=1 and Large=0

測試結果
不管中MBPS、IOPS仍是Latency,raid0+1的性能效果都要遠遠優於raid5,按照原來寫操做的性能應該更好。linux

相關文章
相關標籤/搜索