衡量塊存儲產品的性能指標主要包括:IOPS、吞吐量和訪問時延。html
IOPS數據庫
IOPS是Input/Output Operations per Second,即每秒能處理的I/O個數,用於表示塊存儲處理讀寫(輸出/輸入)的能力。若是要部署事務密集型應用,典型場景好比數據庫類業務應用,須要關注IOPS性能。緩存
最廣泛的IOPS性能指標是順序操做和隨機操做,以下表所示。併發
IOPS性能指標 | 描述 | |
---|---|---|
總 IOPS | 每秒執行的I/O操做總次數。 | |
隨機讀IOPS | 每秒執行的隨機讀I/O操做的平均次數 | 對硬盤存儲位置的不連續訪問。 |
隨機寫IOPS | 每秒執行的隨機寫I/O操做的平均次數 | |
順序讀IOPS | 每秒執行的順序讀I/O操做的平均次數 | 對硬盤存儲位置的連續訪問。 |
吞吐量dom
吞吐量是指單位時間內能夠成功傳輸的數據數量。異步
若是要部署大量順序讀寫的應用,典型場景好比Hadoop離線計算型業務,須要關注吞吐量。工具
訪問時延oop
訪問時延是指塊存儲處理一個I/O須要的時間。性能
若是您的應用對時延比較敏感,好比數據庫(太高的時延會致使應用性能降低或報錯),建議您使用ESSD雲盤、SSD雲盤、SSD共享塊存儲或本地SSD盤類產品。測試
若是您的應用更偏重存儲吞吐能力,對時延相對不太敏感,好比Hadoop離線計算等吞吐密集型應用,建議您使用本地HDD盤類產品,如d1或d1ne大數據型實例。
如下是不一樣塊存儲產品的性能對比表。
# 阿里雲yum源
yum -y install libaio-devel fio
Linux實例和Windows實例都推薦使用FIO工具進行測試塊存儲性能。
說明 您也可使用其餘工具測試塊存儲性能,但不一樣工具測試出來的硬盤基準性能會有差別,如dd、sysbench、iometer等工具可能會受到測試參數配置和文件系統影響,難以反映真實的磁盤性能。本文中所描述的性能參數,均爲Linux實例下采用FIO工具的測試結果,以此做爲塊存儲產品性能指標參考。
測試隨機寫IOPS,運行如下命令:
fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Write_Testing
測試隨機讀IOPS,運行如下命令
fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Read_Testing
測試順序寫吞吐量,運行如下命令:
fio -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Write_PPS_Testing
測試順序讀吞吐量,運行如下命令:
fio -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Read_PPS_Testing
-direct=1 | 表示測試時忽略I/O緩存,數據直寫。 |
-iodepth=128 | 表示使用AIO時,同時發出I/O數的上限爲128。 |
-rw=randwrite | 表示測試時的讀寫策略爲隨機寫(random writes)。做其它測試時能夠設置爲:
|
-ioengine=libaio | 表示測試方式爲libaio(Linux AIO,異步I/O)。應用程序使用I/O一般有兩種方式:
|
-bs=4k | 表示單次I/O的塊文件大小爲4 KB。未指定該參數時的默認大小也是4 KB。 測試IOPS時,建議將 測試吞吐量時,建議將 |
-size=1G | 表示測試文件大小爲1 GiB。 |
-numjobs=1 | 表示測試線程數爲1。 |
-runtime=1000 | 表示測試時間爲1000秒。若是未配置,則持續將前述-size 指定大小的文件,以每次-bs 值爲分塊大小寫完。 |
-group_reporting | 表示測試結果裏彙總每一個進程的統計信息,而非以不一樣job彙總展現信息。 |
-filename=iotest | 指定測試文件的名稱,好比iotest。測試裸盤能夠得到真實的硬盤性能,但直接測試裸盤會破壞文件系統結構,請在測試前提早作好數據備份。 |
-name=Rand_Write_Testing | 表示測試任務名稱爲Rand_Write_Testing,能夠隨意設定。 |
摘錄: https://help.aliyun.com/document_detail/25382.html?spm=5176.diskbuyv3.cloudDisk.1.5e903675IyKvEd
https://support.huaweicloud.com/productdesc-evs/zh-cn_topic_0044524691.html