2022年1月21日 星期五

務實地評估磁碟儲存系統的效能

林振誠
現任普安科技技術處技術支援部資深副理,在磁碟陣列研發、測試領域有近10年的經驗。


效能永遠是一個充滿爭議的問題,廠商基於突顯產品特色的立場,必然會以最理想情況下測得的數值作為規格基準,而使用者在購入產品後,也必然希望它能發揮出和宣傳中數值一樣的效能。然而由於應用環境與操作方式的差異,用戶實際得到的產品效能與廠商宣稱多少有些差異,許多誤解也就由此產生。

就整個IT硬體架構而言,含有機械元件的磁碟系統一直是決定IT系統效能的關鍵,因此了解磁碟系統的I/O效能,也成為評估整個IT系統運作能力不可或缺的一環。

但對磁碟系統來說,存取性能往往會受到從前端伺服器到後端儲存裝置的每一環節所影響,普安科技技術處資深副理林振誠提醒,在評估採購需求或建置、調校磁碟系統時,必須注意存取資料流流經的每一環節,認清效能瓶頸所在,才能對症下藥。

問:影響磁碟儲存系統效能的因素有哪些?
答:從前端伺服器到後端儲存裝置,每一環節都會有影響,只要任一環節有所差異,得到的效能數值就會不同。

我們可以將整個磁碟儲存系統分成三部份來看;一、前端伺服器;二、伺服器與磁碟陣列間的傳輸通道;三磁碟陣列本身。

問:前端伺服器影響效能的因素有哪些?
答:伺服器本身的處理器、記憶體、磁碟系統以及匯流排規格,都關乎伺服器發起存取需求的能力。如果伺服器不夠快,發起存取需求的能力不夠,那傳輸通道頻寬再大、後端磁碟陣列再快,也沒辦法充分發揮,這會變成後端的磁碟陣列經常閒置,等待前端伺服器發起存取需求。這些規格中尤其是匯流排的影響經常被忽略。

對4Gb/s頻寬的光纖通道來說,採用PCI-X介面的伺服器已經無法滿足需求,目前企業級磁碟陣列與4Gb FC通道的性能都已經超過1條PCI-X的頻寬,如果用戶的伺服器是以1張PCI-X介面的FC HBA連接磁碟陣列,那無論如何都無法得到磁碟陣列的最大效能。要充分發揮傳輸通道的可用頻寬,最好是在兩條PCI-X上安裝兩張HBA卡,分別連接磁碟陣列上不同RAID Group,將負載分散到兩條PCI-X匯流排上。當然如果改用頻寬更高的PCI-e介面,問題就會減少許多。

問:伺服器應用程式的類型會不會造成影響?
答:會。有些應用程式如資料庫,需要的是隨機存取性能,有些應用程式如備份、視訊播放則注重連續存取效能,而不同磁碟陣列的存取特性都不同,某些差別還必須在有大量存取需求的大型環境中,才能發現。

以我們之前碰過的一個用戶為例,他們的應用系統講求的是:大量伺服器同時發出存取需求時,磁碟系統的回應時間(response time)。在測試中,某產品在少量存取需求時,還能維持相當短的回應時間,但若同時收到的存取需求增加,回應時間馬上大幅上升。相比之下,另一個產品在少量存取需求時的回應時間比較遜色,但在同時大量存取要求下,還能維持相對較低的回應時間。對用戶來說,他們需要的就是後面這個系統。但從這個例子來看,這種產品間的差異必須在特定環境下才能看出來。

問:傳輸通道的因素又是如何?
答:一般提到的磁碟效能規格中,傳輸通道頻寬是最清楚易懂的,4Gb/s的光纖通道比2Gb/s快,也比採用1GbE的iSCSI快,不過某些特殊類型的傳輸通道規格的頻寬,就不能這樣直接理解。如目前SAS規格是3Gb/s,也就是300MB/s的頻寬,但SAS具有四合一頻寬聚合技術,可以把4條SAS匯流排聚合成1組,因此頻寬就成為300MB/s×4,也就是說,當磁碟陣列以SAS纜線直接連接伺服器時,將能得到1.2GB/s的最大頻寬。

問:在磁碟陣列這一端,影響的因素有哪些?
答:不同的硬碟數量、轉速與控制器設計都會造成效能上的差異。目前1臺1.5萬轉硬碟的持續傳輸能力最高可達到125MB/s,7,200轉硬碟則在80、90MB/s左右,因此某些在宣稱能提供數萬個IOPS,或能達到上千MB/s傳輸速率的系統,事實上都是依靠大量硬碟的同時存取,並開啟多條FC通道才達到的,有時甚至還要外接的擴充硬碟櫃,以增加整體系統的硬碟數量。

另外,控制器對I/O處理能力也有很大的影響。同樣是16臺硬碟的磁碟陣列,由於控制器使用的處理器性能差異,對每秒處理的IO數有時可相差一倍以上。

問:對磁碟陣列來說,有哪些可以作為評估效能的指標?又有哪些工具可以使用?
答:主要是兩個指標:每秒處理的IO數量(Input/Output per second,IOPS),以及每秒傳輸多少MB(MB per second)。業界一般是以Iometer來測試磁碟陣列,透過參數的調整,可以模擬不同的存取行為。當然任何測試工具都有盲點,最好的評估方式,還是使用企業本身實際執行的應用程式,才能看出磁碟陣列的真實表現。整理⊙張明德


業界視為標準的磁碟效能測試工具:Iometer

Iometer是目前業界量測儲存系統I/O效能的標準工具,可藉由負載產生器(Workers)的參數調整,透過測試元件產生不同區塊大小的輸入輸出請求與讀取/寫入的分布比例,模擬網路伺服器、檔案伺服器以及線上交易資料庫的讀寫行為。由測試得出系統的最大I/O處理能力、傳輸速率與CPU占用率,使用者即可評估在不同應用環境下,伺服器儲存系統或是外接儲存設備的性能。Iometer本身是一套開放原始碼軟體,最新的版本為2006.07.27,可支援Windows、Linux、Solaris與Mac OS X等平臺。

Iometer重要參數:
Iometer內可調節的參數相當多,我們從一般效能測試中常用的一些參數,逐一簡單說明。

拓墣面板
Worker:設定每個磁碟同時執行的執行緒(thread)數目。對一些高性能伺服器或企業級儲存設備,必須增加Worker數目,才能測得最大的效能。

磁碟目標面板
# of Outstanding IO:設定每個磁碟同時發起I/O的數量,若是模擬串流檔案的播放或類似環境,可用預設值1。若要模擬同時有多個應用程式發出存取需求的環境,可依不同狀況設定。不過如果設太大的話,系統很可能會當機。

存取明細對話框
Transfer Request Size:每個I/O存取需求的Bytes大小,要測試系統最大I/O處理能力可設為512Bytes,要測試最大傳輸能力(MB/s)可設為128kB到512kB。

Percent Read/Write Distribution:讀取/寫入比例,模擬一般應用程式存取可設為50%讀+50%寫,或60%讀+40%寫;若要模擬備份寫入行為,可設為100%寫入;若要模擬還原動作,可設為100%讀取。

若要讓GbE這類全雙工通道發揮最大效率,可設為50%讀+50%寫,以便啟動雙向傳輸。

Percent Random/Sequential Distribution:隨機/循序存取比例,若要模擬多媒體串流檔案播放,或是大量連續資料的備份/還原,可設為100%循序存取;若要模擬高交易資料庫,可設為100%隨機存取。

測試設定選單
Run Time:測試執行時間,一般設為30到60秒。

Ramp Up Time:在測試某些擁有大量快取記憶體的系統時,為避免系統剛開始測試時一些異常或不穩定的數值,影響測試統計結果,可設定15到60秒的Ramp Up時間,等待系統進入穩定後再錄取測試數值。

Iometer的結果顯示面板可顯示IOPS、傳輸頻寬、回應時間、處理器占用率等6類測試結果,點選個別類型還有更精細的結果分析。


資料來源:https://www.ithome.com.tw/tech/47376

沒有留言: