體驗阿里雲SSD雲盤+ECS(I/O優化)的性能

阿里雲推出SSD雲盤+I/O優化的ECS已有一段時間,這個功能優化可以爲ECS服務器與SSD雲盤提供更好的網絡能力。據阿里雲官網介紹,SSD雲盤最高提供20000次隨機讀寫IOPS、256MB/S吞吐量的存儲性能。這裏需要解釋一下如果想要達到20000次IOPS,需要SSD雲盤容量達到667GB以上。下面的文章中會對這個做進一步解釋。近期拿到了這款產品的公測機會,下面就讓我們一起開啓一段體驗之旅吧。

首先在訂購頁面中選擇自己所需的配置,由於我是測試體驗就先按照最低配置來進行購買(CPU:2核,內存:4GB,SSD雲盤:20GB),如下圖。

aliyunorder

創建成功之後就可以使用ECS了,通過Google瞭解到AnvilPro是用來測試SSD硬盤常用的軟件,那我就用這款工具來對阿里雲的SSD雲盤進行測試。目前對於SSD硬盤測試最主要的測試指標就是——IOPS,這個有代表什麼意思呢? IOPS的全稱是Input/Output Per Second,即每秒的輸入輸出量(或讀寫次數),指單位時間內系統能處理的I/O請求數量,一般以每秒處理的I/O請求數量爲單位,I/O請求通常爲讀或寫數據操作請求。

wmarow-iops-calc

既然有了測試依據,那麼我就在服務器上打開AnvilPro軟件,分別以C盤1G、E盤4G、E盤16G爲測試,得到如下圖的測試數據。

301345321181322

301345095099994

301345206815815

這款軟件讀取部分以Seq 4MB(連續讀取)、4K(隨意讀取,併發1個隊列)、4K QD4(隨意讀取,併發4個隊列)、4K QD16(隨意讀取,併發16個隊列)、32K、128K劃分;寫入部分爲Seq 4MB、4K、4K QD4(隨意讀取,併發4個隊列)、4K QD16(隨意讀取,併發16個隊列)。從圖中可以看出IOPS與MB/S可以直接進行換算,比如以C盤1G的測試標本,4K讀取是1201.75,即每秒可以讀取1201個4K文件,即1201*4K/1024 = 4.69MB/S。

通過這幾天的學習以及阿里雲童鞋的指導,得知目前SSD雲盤的性能是跟存儲容量有關係,按照官方介紹的計算標準,SSD雲盤每1GB空間提供30個IOPS,30GB空間提供900個IOPS,以此類推100GB空間提供3000個IOPS,如果想要達到20000個IOPS,需要667GB。那麼根據這個計算標準,我之前購買的配置是按照SSD雲盤最小標準——20GB,根據上圖所測試出來的IOPS,阿里雲的SSD雲盤在20GB下的性能已經很不錯啦。但是我又真的想體驗一下20000個IOPS是什麼水準?那麼就繼續下單購買,分別購買了Windows Server 2012 配置如下:CPU:2核,內存:4GB(I/O優化),數據盤:700G,帶寬:1M(峯值)。同時我也購買了相同配置的Ubuntu服務器,測試一下SSD雲盤在Linux下的性能。

這次在Windows Server下測試我依舊選擇了以上次測試同樣的軟件——AnvilPro,而沒有使用朋友推薦的HD Tune,主要是爲了與上次的測試條件達到統一。只不過這次我根據自己的選擇進行測試,比如我選擇了以Block Size:4K、32K、64K,Queue Depth=16爲標準,進行了三組測試,如下圖:

Red Hat VirtIO SCSI Disk Device_751GB_TH-R-IO_20150707-2101

Red Hat VirtIO SCSI Disk Device_751GB_TH-R-IO_20150707-2102

Red Hat VirtIO SCSI Disk Device_751GB_TH-R-IO_20150707-2103

然後又測試了隨機寫入數據的,這次以Block Size:32K、64K,Queue Depth=16爲標準進行測試

Red Hat VirtIO SCSI Disk Device_751GB_TH-W-IO_20150707-2103

Red Hat VirtIO SCSI Disk Device_751GB_TH-W-IO_20150707-2104

通過上面的Random Read和Rand Write 結果得出,SSD雲盤的性能確實是跟容量大小有關係,我上週做的以最小容量爲基準的測試雖然也能反應出SSD雲盤的性能,但是要想獲取最大性能的SSD雲盤還是建議在有條件的情況下購買大容量的SSD雲盤。下面看一下在Ubuntu服務器下面的測試結果,在Linux環境下會使用FIO進行測試,只需要通過命令行輸入:

fio -direct=1  -iodepth=64  -rw=randwrite  -ioengine=libaio  -bs=16k  -size=10G  -numjobs=1  -runtime=1000  -group_reporting  -name=/data/testfile

FIO_RandomWrite

這段測試的含義是測試隨機寫,每次寫入大小16K,文件大小爲10G,ioengine=libaio,運行1000秒(runtime),跳過buffer 下面的測試結束,每秒寫速bw=235413KB/s,IOPS=14713。

通過上面的性能測試得到的數據,SSD雲盤可以解決隨機讀取IOPS性能的問題,就如產品介紹那樣1GB提供30個IOPS,100GB提供300個IOPS。那麼問題來了,如何來選擇ECS的配置?下面瞭解一下目前按量付費的計算公式(以1000元爲準)。4核16G的配置可以使用13天,16核16G的配置可以使用9天。剩下的就按照自己的需求來訂購配置了。

目前這款產品是適合對數據可靠性要求高的I/O密集型等核心業務系統或者中大型開發測試環境。如果你的業務發展碰到用戶訪問量大、高併發等問題,那麼還是通過這種硬件上的投入來解決問題。因爲當你的業務發展遇到這樣的情況,說明你的網站或是App等產品是有用戶羣體和知名度的,所以對於基礎設施產品的投入會隨着越來越多的增長用戶攤薄投入成本。

總之現在的互聯網行業,用戶體驗是每個開發人員和運營者所追求的目標,能爲自己的用戶帶來更好的使用體驗是一件幸福的事情。其實這也是雲計算廠商所追求的目標,通過爲網站開發者提供有針對性、適合各種業務場景的產品來解決我們的問題,讓我們開發者聚焦在自己熟悉的領域,關注自己的產品開發,提升產品競爭力,這纔是一個有序的發展生態。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章