如何優(yōu)化Windows服務器磁盤性能
在一臺服務器的使用上,磁盤往往占據(jù)著很重要的位置。服務器磁盤的配置和維護對整個服務器性能方面產(chǎn)生很大影響。實際上,優(yōu)化服務器磁盤的方法只需要花費一點點時間。在這篇文章中,我將會分享一些提高你的服務器磁盤子系統(tǒng)效率的方法。
注意:幾乎所有的服務器都被做了不相同的配置。也就是說,最適合您的組織的磁盤配置和優(yōu)化技巧可能對另外一個組織的服務器是有害的。唯一的完全優(yōu)化一臺服務器磁盤的方法是去分析,在這臺服務器上都運行了哪些應用,并且這些應用在服務器磁盤子系統(tǒng)中占用了多少工作量。
所以說,在這里是沒有辦法去提供最全面最完善的方法,來讓你的服務器以***化的性能運行。這篇文章將會帶來一些通用方法,通常能夠用來提高大多數(shù)類型服務器的性能。
文件布置
優(yōu)化服務器性能的一個竅門是去把文件放置在適當?shù)拇疟P上。舉例來說, Windows Server操作系統(tǒng)通常情況下是被安裝在C盤上。在這樣的情況下,我推薦將C盤僅用作存放操作系統(tǒng)文件之用,盡管在一些情況下,你也可以將一些其他應用到C盤上而沒有對性能產(chǎn)生不好的影響。
因為操作系統(tǒng)組件會消耗大量的磁盤輸入/輸出時間,并生成pagefile系統(tǒng)文件,我推薦將它放在一個專屬磁盤驅動器(并不是一個專屬分區(qū))。這能夠防止磁盤輸入/輸出關聯(lián)虛擬內(nèi)存分頁而不打斷系統(tǒng)其他部分。
存儲到服務器上的任何一個數(shù)據(jù)通常都應該被存放在一個專屬卷上。因為絕大多數(shù)的服務器磁盤輸入/輸出通常同讀取數(shù)據(jù)和寫入數(shù)據(jù)相關聯(lián),它通常需要在一個 RAID(獨立磁盤冗余陣列)陣列上存放數(shù)據(jù),類型依賴于你所需要的性能級別和容錯控制。RAID(獨立磁盤冗余陣列)10陣列常常是一個較好的選擇對象,因為他們同RAID 1陣列一樣迅速,但卻是通過鏡像(mirroring)提供容錯控制。
內(nèi)存
不管你是否相信,你的系統(tǒng)中內(nèi)存總數(shù)會給磁盤子系統(tǒng)性能帶來巨大差異。我已經(jīng)討論過在一個專屬的磁盤上存放頁面文件,以此來將帶給系統(tǒng)閑置的虛擬內(nèi)存頁面的影響最小化。虛擬內(nèi)存的概念是相對于物理內(nèi)存而言的,當系統(tǒng)的物理內(nèi)存空間入不敷出時,操作系統(tǒng)便會在硬盤上開辟一塊磁盤空間當做內(nèi)存。
然而,這個技巧是很差強人意的。首先,磁盤的相應速度甚至比最慢的物理內(nèi)存還要慢。磁盤的存取速度是在毫秒的數(shù)量級上,而物理內(nèi)存的存取速度是在十億分之一秒的數(shù)量級上。
另外一個問題是操作系統(tǒng)不能利用存儲在虛擬內(nèi)存上的內(nèi)存分頁。如果操作系統(tǒng)需要去執(zhí)行在一個內(nèi)存分頁執(zhí)行一個指令,那首先這個分頁必須被移動到物理內(nèi)存上。這個步驟被稱為交換(swapping)或者paging(線性空間到物理地址空間的映射)。
如果一臺服務器的物理內(nèi)存被裝載滿了,并且在它需要去訪問一個存放在虛擬內(nèi)存中的內(nèi)存分頁的時候,那在這個時候,服務器將不得不去將一個暫時不用的分頁從物理內(nèi)存中交換到虛擬內(nèi)存上,以使得物理內(nèi)存上有空間,能夠將需要訪問的內(nèi)存分頁從虛擬內(nèi)存中交換到物理內(nèi)存上。
這種分頁進程不但只消耗磁盤資源,并且還占用大量的CPU時間和內(nèi)存。有一些服務器的物理內(nèi)存往往會去記錄哪些分頁在隨機存儲器(RAM)上,哪些分頁在虛擬內(nèi)存上。這就是為什么分頁方法是如此的低效。一些分頁是正常的,但是過量的分頁會嚴重的制約一個系統(tǒng)的性能。過量的分頁會導致不變的磁盤工作 (disk activity)。
減少分頁的***方法是在你的服務器上安裝盡可能多的內(nèi)存。隨著服務器中的隨機存儲器(RAM)數(shù)量的增加,相應的,pagefile文件的大小也會增加。然而,在pagefile文件上的系統(tǒng)依賴將會減少。這將會騰出數(shù)量相當可觀的磁盤處理時間和CPU處理時間。
磁盤碎片整理程序
這里最重要的方法之一是為保證你能夠有一個性能良好的磁盤,你應該去規(guī)則定期的執(zhí)行磁盤碎片整理程序。磁盤被設計為寫入數(shù)據(jù)以線性方式。但是,當文件被刪除時,磁盤文件就不會被連續(xù)存放,在文件被刪除的地方,就會形成無法利用的空間。
在將數(shù)據(jù)寫入可用空間之前,磁盤將會計算這些可用空間。如果可用空間不能向被寫入的數(shù)據(jù)提供足夠的空間時,文件就會被分散保存到磁盤的不同地方:文件的一部分會被插入到可用空間的縫隙中,剩下的一部分可能會被存放到下一個可用空間的縫隙中,或者磁盤的末尾部分。
這種文件碎片對系統(tǒng)性能產(chǎn)生不好的影響,因為文件碎片過多會使系統(tǒng)在讀寫文件的時候來回尋找,使效率變低。整理磁盤碎片,并且允許文件以一個線性方式存放,這將會加快磁盤的存取讀寫速度。
索引
根據(jù)你服務器的以往使用經(jīng)驗,索引的使用在其中起到的作用應該是喜憂參半的。索引包括讀取磁盤上的所有文件,并且創(chuàng)建一個索引告訴操作系統(tǒng)所包含的是什么文件。如果用戶通過這種例行搜索方式去在一個大數(shù)據(jù)量中去查找特殊文件,索引就會讓這種方法變得更有效。
然而,許多系統(tǒng)管理員不喜歡使用索引,因為索引進程會占用大量的CPU處理時間和內(nèi)存。一些磁盤空間也往往會去存儲索引。
建議:以server-by-server的基礎去判斷是否使用索引是很恰當?shù)?。在我的組織中我做索引文件服務器,因為我經(jīng)常不得不去通過我的文件搜索來查看我是否已經(jīng)寫了關于某些問題的文章。然而,我的郵件服務器,數(shù)據(jù)庫服務器,主域服務器(DNS),域控制器等等并沒有被編入索引。為這些類型的服務器作索引是沒有任何意義的。事實上,如果你希望去提高系統(tǒng)性能,你應該檢查你的結構底層服務器,來確定它們沒有被編入索引
【編輯推薦】