iops 條帶深度 隊列深度 NCQ

iops 條帶深度 隊列深度  NCQ


           IOPS 即I/O per second,即每秒進行讀寫(I/O)操作的次數,多用於數據庫等場合,衡量隨機訪問的性能。

併發IO的概念:併發IO,指多個IO可以同時被處理,比如IO1可以訪問a盤,IO2可以同時訪問b盤。併發IO的反義詞是順序IO。

條帶深度:raid5的128KB條帶,128KB條帶=磁盤數量乘以每個磁盤上組成這個條帶的segment大小,也就是說一個條帶把排列的多個磁盤橫向切成了一條一條的,硬盤本身相當於豎條,而橫條和豎條切開之後形成的小格子就是segment,也叫條帶深度,stripe depth。比如8個盤的raid5系統,其中一塊用於存放parity,128KB條帶除以8等於16KB,也就是說segment=條帶深度=16KB=每個磁盤上貢獻一個條帶所使用的空間。

隊列深度:描述每個磁盤同時激活的最大的I/O值。例如,在你的配置中,每個LUN有4個磁盤,如果你的隊列深度定義爲16,那麼整個系統同時擁有的最大的I/O數爲64 (4 個磁盤 * 每個磁盤16 最大I/O值);隊列深度是一臺設備上承載命令隊列中的命令數量。
隊列深度就是數字越大代表要處理的任務數越多,可以同時併發

HBA隊列深度指的是發送到數據存儲基礎設施中等待處理的存儲I/O數量。在安裝HBA時,多數存儲管理員僅僅使用HBA卡的缺省設置,而缺省HBA隊列深度設置一般太高。這會造成存儲端口發生擁塞,從而導致應用性能問題。如果隊列深度被設置得太低,端口和SAN基礎設施則得不到高效率的使用。當存儲系統沒有加載足夠的等待處理的I/O時,則得不到使用其高速緩存的機會。但如果緩存中的幾乎所有數據在被存取前就過期的話,則大多數數據存取將來自硬盤。多數HBA將缺省隊列深度設置在32至256之間,但最佳範圍實際上接近於2到8。多數啓動程序能夠報告任何時刻它們隊列中未處理的請求數量,這就使你可以在過深和過淺的隊列深度間取得平衡。

NCQ技術它是一種使硬盤內部優化工作負荷執行順序,通過對內部隊列中的命令進行重新排序實現智能數據管理,改善硬盤因機械部件而受到的各種性能制約。NCQ技術是SATAⅡ規範中的重要組成部分,也是SATAⅡ規範唯一與硬盤性能相關的技術。   

NCQ技術   SATA規範支持許多新的功能,其中之一就是NCQ(Native Command Queuing全速命令排隊)技術。 首先讓我們來看一下硬盤是怎樣讀寫信息的。硬盤通過將信息寫入磁盤磁道上的特定位置進行信息存

儲,硬盤訪問磁盤上信息的過程如下:   

● 尋找存儲數據的目標磁碟(platter),訪問該磁碟。   

● 尋找磁碟上存儲數據的目標磁道(track),訪問磁道。   

● 尋找磁道上存儲數據的目標簇(cluster),訪問簇。   

● 尋找簇上存書數據的目標扇區(sector),訪問扇區。  

● 尋找目標數據,讀取數據。   

通過上面的步驟,硬盤即可獲取所需要的數據信息。硬盤寫入數據的步驟也是如此,區別僅僅在於讀操作變爲寫操作。大多數情況下數據存入硬盤並非是順序存入,而是隨機存入,甚至有可能一個文件被分配在不同盤片上。對於不支持NCQ的硬盤來說,大量的數據讀寫需要反覆重複上面的步驟,而對於不同位置的數據存取,磁頭需要更多的操作,降低了存取效率。支持NCQ技術的硬盤對接收到的指令按照他們訪問的地址的距離進行了重排列,這樣對硬盤機械動作的執行過程實施智能化的內部管理,大大地提高整個工作流程的效率:即取出隊列中的命令,然後重新排序,以便有效地獲取和發送主機請求的數據,在硬盤執行某一命令的同時,隊列中可以加入新的命令並排在等待執行的作業中。顯然,指令排列後減少了磁頭臂來回移動的時間,使數據讀取更有效。   

如上圖所示,如果新的命令恰好是處理起來機械效率最高的,那麼它就是隊列中要處理的下一個命令。舉個例子:比如向硬盤下達一組數據傳送指令,由於數據在磁盤上分佈位不同,磁頭可能會先讀取260扇區,再讀取7660扇區,然後又讀取261扇區……如果我們對指令進行優化排列,可以先讀260扇區,接着依次讀261扇區,最後讀取7660扇區……顯然,指令排列後減少了磁頭臂來回移動的時間,使數據讀取更有效。並且有效的排序算法除了考慮目標數據的線性位置,也會考慮其角度位置,並且還要對線性位置和角度位置進行優化,以使總線的服務時間最小,這個過程也稱做“基於尋道和旋轉優化的命令重新排序”。  



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