Microsoft SQL Server 2000 超級管理手冊(五)

本文主要探讨I/O子系统,介绍了磁盘阵列、常见RAID层级及效能比较等内容。分析了随机性I/O对效能的影响,指出SQL Server对I/O延迟敏感,I/O延迟过长会降低其效能甚至导致封锁或死结。最后给出解决磁盘效能限制问题的方针,以提升I/O系统效能。

5. 設定與規劃I/O 子系統

磁碟系統的特性

磁碟陣列概觀

I/O 子系統的觀念

常見的RAID層級概觀

RAID層級效能比較

I/O延遲與SQL Server

規劃SQL Server磁碟架構

I/O子系統的技巧與建議

本章總結

當您在設定系統時,要特別注意到 I/O 子系統的設計與設定。I/O 子系統的規劃要不對您的系統有所提升,便是降低整體的表現。若能確實了解 I/O 子系統的限制,並在伺服器上做好適切的規劃,您的系統便可提供理想的效能表現。

我們將在本章中探討 I/O 子系統。從磁碟運作及其效能限制等基本原理開始,接著介紹可運用的磁碟陣列方案以及各自的特色。此外,您也可以學到判別 I/O 效能問題,並進一步解決這些問題。本章也提供了一些 I/O 子系統的訣竅與建議。最後,我們將告訴您如何恰當地設定 Microsoft SQL Server 2000,好好的運用 I/O 子系統的效能。

磁碟系統的特性
 

磁碟(或說硬碟)是電腦系統中一個基本的元件。令人驚訝的是,近20年來磁碟系統幾乎沒什麼改變。比起過去,今日的磁碟或許更快更穩定,但基本上它們都是一樣的東西。

從效能的觀點來看,磁碟系統的調校是硬體元件最重要的關鍵。更正確的說,您不能調校您的磁碟;但若了解磁碟系統運作的原理與限制,並針對這些限制留心規劃您的系統,您是在調校您的 I/O 子系統。

磁碟系統的構造
 

磁碟機中用來儲存資料元件稱做磁碟片或磁盤。磁碟片上塗佈著可以儲存資料的磁性物質。資料儲存在磁軌上,所謂磁軌,看起來就像是黑膠唱片(或是CD,如果您不記得黑膠唱片長什麼樣子的話)上的音軌。每道磁軌上依序劃分著若干磁區,離磁碟中心越遠,磁軌所容納的磁區數就越多。圖5-1便是一個典型的磁碟片。


 

圖5-1 磁碟片

大部份的磁碟裡都有數片磁碟片,且是一片一片堆疊起來的,如圖5-2。讀取與寫入資料的部份稱做「讀寫頭」。由於有著數片磁碟片,讀寫頭往往也不止一個。連接讀寫頭的部份稱做「讀寫臂」,它可以讓讀寫頭在磁區上來回移動,有點像是唱機上連接唱針的搖臂。

讀寫頭與讀寫臂是固定連接的,造成的結果是,所有讀寫頭在磁碟片上的動作將會同進同出。換言之,所有讀寫頭在磁碟片上讀或寫的動作是同步的,資料不是同時被讀取就是同時被寫入。基於這種運作方式,讀寫頭是同時經過每片磁碟上相同的磁軌,這些磁軌堆疊起來就如圓柱,因此我們說資料是被儲存在「磁柱」上,就如圖5-2所示。

磁碟裡的磁碟片數量可以是一片,也可以多到超過六片,磁碟片的密度與數量決定了磁碟的容量大小。大部份的磁碟規格都差不多,不同的部份只在磁碟片的數量。較常見的是有三片磁碟片的9 GB磁碟與六片磁碟片的18GB磁碟。


 

圖5-2 磁柱

磁碟特性
 

現在您大概了解磁碟的構造,接著我們再來看看它是如何運作的。首先必須了解磁碟旋轉的特性,由此便能明白磁碟搜尋效能的癥結。

迴圈延遲
 

今日大多數高階磁碟已能達到每分鐘 10000 轉這種速度(10000rpm)。當有資料要求時,磁碟在讀到這個資料前需先旋轉至資料位置,這個轉動大概要花6毫秒(ms),或說0.006秒。一顆10000 rpm的磁碟每秒旋轉166.7圈,亦即每圈花費1/166.7秒,或6 ms。

磁碟要讀取資料,則儲存資料的磁區必須位於讀寫頭之下。因為磁碟似乎永遠在旋轉,讀寫頭看起來就像是在等待磁區轉至它的位置。這段等待磁區旋轉至讀寫頭位置的時間,我們就稱做「迴圈延遲」(rotational latency)。如果磁碟是完整地旋轉一圈,迴圈延遲的長度為6 ms,但平均而言,它大概是3 ms左右。

迴圈延遲會增加磁碟存取的回應時間。因此,當您在為系統選擇磁碟時,從效能的觀點審慎考慮迴圈延遲的長度是非常重要的事。如剛剛所見,一顆每分鐘10000轉的磁碟,迴圈延遲約為3 ms。一般較舊型的磁碟每分鐘是7200轉,一圈約為8.3 ms,平均的迴圈延遲大概是4.15 ms。看起來似乎差別不大,但其實這個時間約比10000 rpm的磁碟多了38%。讀完本章您會發現,這38%將是系統 I/O 時間的一大負擔。

磁碟搜尋
 

當我們想從磁碟上取回資料時,不只需要磁碟機將磁區旋轉至讀寫頭底下讓它讀取資料,讀寫頭也必需移動至資料所位在的磁軌才行。讀寫頭是靠讀寫臂在磁碟片的夾層空間來回移動,移動至資料位在的正確磁柱所耗費的時間稱做「搜尋時間」(seek time)。圖5-3顯示了迴圈延遲與搜尋時間。


 

圖5-3 迴圈延遲與搜尋時間

搜尋時間的長短主要是依讀寫頭所需移動的距離而定。當磁碟存取動作是循序的,則讀寫頭僅需移動一點點距離,搜尋時間會比較短。相對的,若存取動作遍及整個磁碟,搜尋時間自然就會變得相當長。

搜尋時間與迴圈延遲都會增加 I/O 作業的時間,也會因此惡化磁碟的效能。在一顆10000 rpm磁碟上的迴圈延遲通常約3ms左右。搜尋時間則依磁碟的大小、速度以及搜尋時的狀況而有所不同。

 Track-to-Track 搜尋 「Track-to-Track 搜尋時間」指的是讀寫頭在相鄰的磁軌間移動所需要的時間。這種型態的搜尋多半是執行循序性 I/O 作業的時候。以一顆典型的10000 rpm、9GB的磁碟來說,track-to-track 的搜尋時間大概是0.8 ms左右。您可以看到,0.8 ms的track-to-track 搜尋時間與約略3 ms的迴圈延遲,正是影響磁碟效能的最大因素。如果 I/O 作業要求傳送至磁碟的速度夠快,磁碟在相鄰磁軌之間的動作(不論是讀取或寫入)幾乎可同時完成。然而情況多非如此。某些狀況是,I/O 動作的要求不夠快,而磁碟是在每個循序存取之間旋轉。會不會出現這種問題,要看磁碟控制卡的設計與速度而定。

 平均搜尋時間 「平均搜尋時間」指的是讀寫頭在隨機磁軌之間搜尋所耗費的時間平均值。依據磁碟規格表,一顆10000 rpm的磁碟的平均搜尋時間大概是6 ms左右。由於 SQL Server 的 I/O 作業大多隨機產生,您的磁碟也有許多執行隨機性 I/O 的機會。

這款磁碟的最大搜尋時間可以長到13 ms。所謂最大搜尋時間,指的是從磁碟片最內圈的磁軌移動至最外圈的磁軌所耗費的時間。這也被稱做 full-disk 搜尋。但一般來說,搜尋動作多半不會是 full-disk 搜尋,尤其當磁碟不是全滿的時候。

磁碟規格
 

在本節裡,您可以看到磁碟在執行不同的 I/O 作業時能達到多快的速度。要計算這些東西,您手上必須有更多資訊才行。大部份的資料可以從廠商提供的磁碟規格表裡找到。本章之前所舉的例子是一顆10000 rpm、9.1 GB的磁碟規格。在表5-1中可以了解此型磁碟其他的詳細規格。

表5-1 磁碟規格表
規格 說明
磁碟容量9.1 GB尚未format的磁碟容量
轉速10,000 rpm磁碟的旋轉速度
傳輸速率40 MBpsSCSI介面的速度
平均搜尋時間5.2 ms (read)

6 ms (write)

在隨機性 I/O 操作中,磁碟於磁軌間搜尋所耗費時間的平均值
Track-to-Track

搜尋時間

0.6 ms (read)

0.9 ms (write)

在循序性 I/O 操作中,磁碟於磁軌間搜尋所耗費的時間
Full-disk

搜尋時間

12 ms (read)

13 ms (write)

從磁碟最內圈到最外圈所耗費的搜尋時間
平均延遲2.99 ms迴圈延遲時間的平均值
平均錯誤發

生間隔時間

1,000,000 hours一顆磁碟的平均壽命

如您所看到的,磁碟規格表上所載明的數據,有助於了解一顆磁碟真正的效能。

磁碟效能
 

I/O作業所需耗費的時間量來自於下列幾個因素:

  • 必須的搜尋時間 (讓磁頭可以移動到資料所在的磁軌)
     
  • 必須的迴圈延遲(讓資料可以轉至磁頭底下)
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值