優(yōu)化Linux系統硬盤(pán)的七個(gè)實(shí)用技巧
所有的文件系統隨著(zhù)時(shí)間的推移都趨向于碎片化。Linux文件系統減少了碎片化,但是并沒(méi)有消除。由于它不經(jīng)常出現,所以對于一個(gè)單用戶(hù)的工作站來(lái)說(shuō),可能根本不是問(wèn)題。然而在繁忙的服務(wù)器中,隨著(zhù)時(shí)間的過(guò)去,文件碎片化將降低硬盤(pán)性能,硬盤(pán)性能只有從硬盤(pán)讀出或寫(xiě)入數據時(shí)才能注意到。下面是優(yōu)化 Linux系統硬盤(pán)性能的一些具體措施。
一、清理磁盤(pán)
這種方法看上去很簡(jiǎn)單:清理磁盤(pán)驅動(dòng)器,刪除不需要的文件,清除所有需要被保存但將不被使用的文件。如果可能的話(huà),清除多余的目錄,并減少子目錄的數目。這些建議似乎顯而易見(jiàn),但是你會(huì )驚訝地發(fā)現,每個(gè)磁盤(pán)上確實(shí)積累了非常多的垃圾。釋放磁盤(pán)空間可以幫助系統更好地工作。
二、整理磁盤(pán)碎片
Linux系統上的磁盤(pán)碎片整理程序與Windows 98或Windows NT系統中的磁盤(pán)碎片整理程序不同。Windows 98引入FAT 32文件系統,雖然運行Windows 98不必轉換為FAT 32文件系統。Windows可以被設置為使用FAT或一個(gè)叫NTFS的增強文件系統。所有這些文件系統以本質(zhì)上相同的方式處理文件存儲。
Linux最好的整理磁盤(pán)碎片的方法是做一個(gè)完全的備份,重新格式化分區,然后從備份恢復文件。當文件被存儲時(shí),它們將被寫(xiě)到連續的塊中,它們不會(huì )碎片化。這是一個(gè)大工作,可能對于像/usr之類(lèi)不經(jīng)常改變的程序分區是不必要的,但是它可以在一個(gè)多用戶(hù)系統的/home分區產(chǎn)生奇跡。它所花費的時(shí)間與Windows NT服務(wù)器磁盤(pán)碎片整理花費的時(shí)間大致上相同。
如果硬盤(pán)性能仍不令人滿(mǎn)意,還有許多其它的步驟可以考慮,但是任何包含升級或購買(mǎi)新設備的硬件解決方案可能會(huì )是昂貴的。
三、從IDE升級到SCSI
如果你的硬盤(pán)是一個(gè)IDE驅動(dòng)器,可以通過(guò)升級到SCSI驅動(dòng)器獲得更好的整體性能。因為IDE控制器必須訪(fǎng)問(wèn)CPU,CPU和磁盤(pán)密集型操作可能變得非常緩慢。SCSI控制器不用通過(guò)CPU處理讀寫(xiě)。當IDE驅動(dòng)器在讀或寫(xiě)時(shí),用戶(hù)可能會(huì )因為CPU周期被IDE驅動(dòng)器占用而抱怨系統的緩慢。
獲取更快的控制器和磁盤(pán)驅動(dòng)器
標準的SCSI控制器不能比標準的IDE控制器更快地讀寫(xiě)數據,但是一些非??斓?ldquo;UltraWide”SCSI控制器能夠使讀寫(xiě)速度有一個(gè)真正的飛躍。
EIDE和UDMA控制器是非??斓腎DE控制器。新的UDMA控制器能夠接近SCSI控制器的速度。UDMA控制器的頂級速度是猝發(fā)速度,但持續傳輸的速度明顯慢得多。IDE控制器包括UDMA,是嵌入在驅動(dòng)器本身中的。不需要購買(mǎi)一個(gè)控制器,只要購買(mǎi)一個(gè)驅動(dòng)器,它就包含了控制器,可以獲得 UDMA性能。
磁盤(pán)驅動(dòng)器經(jīng)常忽視的一個(gè)方面是磁盤(pán)本身的速度。磁盤(pán)的速度以rpm為單位給出,它代表每分鐘旋轉多少次。rpm越大,磁盤(pán)速度也越快。如果你有這方面的預算,大多數服務(wù)器系統廠(chǎng)商可提供7500rpm甚至10000rpm SCSI磁盤(pán)。標準SCSI和IDE磁盤(pán)提供5400rpm速度。
四、使用多個(gè)控制器
IDE和SCSI磁盤(pán)可以被鏈接。IDE鏈最多包括兩個(gè)設備,標準SCSI鏈最多包括七個(gè)設備。如果在系統中有兩個(gè)或更多SCSI磁盤(pán),很可能被鏈接到同一個(gè)控制器。這樣對大多數操作是足夠的,尤其是把計算機當作單用戶(hù)的工作站時(shí)。但是如果有一個(gè)服務(wù)器,那么就能夠通過(guò)對每個(gè)SCSI驅動(dòng)器提供一個(gè)控制器改善性能。當然,好的控制器是昂貴的。
本文引用地址:http://dyxdggzs.com/article/201706/353808.htm五、調整硬盤(pán)參數
使用hdparm工具可以調整IDE硬盤(pán)性能,它設計時(shí)專(zhuān)門(mén)考慮了使用UDMA驅動(dòng)器。在缺省情況下,Linux使用是最安全的,但是設置訪(fǎng)問(wèn)IDE驅動(dòng)器是最慢的。缺省模式?jīng)]有利用UDMA可能的最快的性能。
使用hdparm工具,通過(guò)激活下面的特性可以顯著(zhù)地改善性能:
◆ 32位支持 缺省設置是16位;
◆ 多部分訪(fǎng)問(wèn) 缺省設置是每次中斷單部分傳送。
注意:在使用hdparm之前,確保對系統已經(jīng)做了完全的備份。使用hdparm改變IDE參數,如果出錯可能會(huì )引起驅動(dòng)器上全部數據的丟失。
hdparm可以提供關(guān)于硬盤(pán)的大量信息。打開(kāi)一個(gè)終端窗口,輸入下面命令獲取系統中第一個(gè)IDE驅動(dòng)器的信息(改變設備名獲取其它IDE驅動(dòng)器的信息):
hdparm -v /dev/had
上面命令顯示出當系統啟動(dòng)時(shí)從驅動(dòng)器獲得的信息,包括驅動(dòng)器操作在16位或32位模式(I/O Support)下,是否為多部分訪(fǎng)問(wèn)(Multcount)。關(guān)于磁盤(pán)驅動(dòng)器的更詳細信息的顯示可使用-i參數。
Hdparm也可以測試驅動(dòng)器傳輸速率。輸入命令測試系統中第一個(gè)IDE驅動(dòng)器:
hdparm -Tt /dev/hda
此測試可測量驅動(dòng)器直接讀和高速緩沖存儲器讀的速度。結果是一個(gè)優(yōu)化的“最好的事例”數字。改變驅動(dòng)器設置,激活32位傳輸,輸入下面的命令:
hdparm -c3 /dev/hda
-c3參數激活32位支持,使用-c0可以取消它。-c1參數也可激活32位支持并使用更少的內存開(kāi)銷(xiāo),但是在很多驅動(dòng)器下它不工作。
大多數新IDE驅動(dòng)器支持多部分傳輸,但是Linux缺省設置為單部分傳輸。注意:這個(gè)設置在一些驅動(dòng)器上,激活多部分傳輸能引起文件系統的完全崩潰。這個(gè)問(wèn)題大多數發(fā)生在較老的驅動(dòng)器上。輸入下面的命令激活多部分傳輸:
hdparm -m16 /dev/hda
-m16參數激活16部分傳輸。除了西部數據的驅動(dòng)器外,大多數驅動(dòng)器設置為16或32部分是最合適的。西部數據的驅動(dòng)器緩沖區小,當設置大于8部分時(shí)性能將顯著(zhù)下降。對西部數據驅動(dòng)器來(lái)說(shuō),設置為4部分是最合適的。
激活多部分訪(fǎng)問(wèn)能夠減少CPU負載30%~50%,同時(shí)可以增加數據傳輸速率到50%。使用-m0參數可以取消多部分傳輸。
hdparm還有許多選項可設置硬盤(pán)驅動(dòng)器,在此不詳述。
六、使用軟件RAID
RAID廉價(jià)驅動(dòng)器的冗余陣列,也可以改善磁盤(pán)驅動(dòng)器性能和容量。Linux支持軟件RAID和硬件RAID。軟件RAID嵌入在Linux內核中,比硬件RAID花費要少得多。軟件RAID的惟一花費就是購買(mǎi)系統中的磁盤(pán),但是軟件RAID不能使硬件RAID的性能增強。硬件RAID使用特殊設計的硬件,控制系統的多個(gè)磁盤(pán)。硬件RAID可能是昂貴的,但是得到的性能改善與之相匹配。RAID的基本思想是組合多個(gè)小的、廉價(jià)的磁盤(pán)驅動(dòng)器成為一個(gè)磁盤(pán)驅動(dòng)器陣列,提供與大型計算機中單個(gè)大驅動(dòng)器相同的性能級別。RAID驅動(dòng)器陣列對于計算機來(lái)說(shuō)像單獨一個(gè)驅動(dòng)器,它也可以使用并行處理。磁盤(pán)讀寫(xiě)在 RAID磁盤(pán)陣列的并行數據通路上同時(shí)進(jìn)行。
IBM公司在加利福尼亞大學(xué)發(fā)起一項研究,得到RAID級別的一個(gè)最初定義?,F在有六個(gè)已定義的RAID級別,如下所示。
RAID 0:級別0只是數據帶。在級別0中,數據被拆分到多于一個(gè)的驅動(dòng)器,結果是更高的數據吞吐量。這是RAID的最快和最有效形式。但是,在這個(gè)級別沒(méi)有數據鏡像,所以在陣列中任何磁盤(pán)的失敗將引起所有數據的丟失。
RAID 1:級別1是完全磁盤(pán)鏡像。在獨立的磁盤(pán)上創(chuàng )建和支持數據兩份拷貝。級別1陣列與一個(gè)驅動(dòng)器相比讀速度快、寫(xiě)速度慢,但是如果任一個(gè)驅動(dòng)器錯誤,不會(huì )有數據丟失。這是最昂貴的RAID級別,因為每個(gè)磁盤(pán)需要第二個(gè)磁盤(pán)做它的鏡像。這個(gè)級別提供最好的數據安全。
RAID 2:級別2設想用于沒(méi)有內嵌錯誤檢測的驅動(dòng)器。因為所有的SCSI驅動(dòng)器支持內嵌錯誤檢測,這個(gè)級別已過(guò)時(shí),基本上沒(méi)用了。Linux不使用這個(gè)級別。
RAID 3:級別3是一個(gè)有奇偶校驗磁盤(pán)的磁盤(pán)帶。存儲奇偶校驗信息到一個(gè)獨立的驅動(dòng)器上,允許恢復任何單個(gè)驅動(dòng)器上的錯誤。Linux不支持這個(gè)級別。
RAID 4:級別4是擁有一個(gè)奇偶校驗磁盤(pán)的大塊帶。奇偶校驗信息意味著(zhù)任何一個(gè)磁盤(pán)失敗數據可以被恢復。級別4陣列的讀性能非常好,寫(xiě)速度比較慢,因為奇偶校驗數據必須每次更新。
RAID 5:級別5與級別4相似,但是它將奇偶校驗信息分布到多個(gè)驅動(dòng)器中。這樣提高了磁盤(pán)寫(xiě)速度。它每兆字節的花費與級別4相同,提高了高水平數據保護下的高速隨機性能,是使用最廣泛的RAID系統。
軟件RAID是級別0,它使多個(gè)硬盤(pán)看起來(lái)像一個(gè)磁盤(pán),但是速度比任何單個(gè)磁盤(pán)快得多,因為驅動(dòng)器被并行訪(fǎng)問(wèn)。軟件RAID可以用IDE或SCSI控制器,也可以使用任何磁盤(pán)組合。
七、配置內核參數
通過(guò)調整系統內核參數改善性能有時(shí)是很明顯的。如果你決定要這樣做一定要小心,因為系統內核的改變可能優(yōu)化系統,也可能引起系統崩潰。
注意:不要在一個(gè)正在使用的系統上改變內核參數,因為有系統崩潰的危險。因此,必須在一個(gè)沒(méi)有人使用的系統上進(jìn)行測試。設置一個(gè)測試機器,對系統進(jìn)行測試,確保所有工作正常。
Tweak內存性能
在Linux中,可以Tweak系統內存。如果遇到內存不足錯誤或者系統是用于網(wǎng)絡(luò )的,可以調整內存分配設置。
內存一般以每頁(yè)4千字節分配。調整“空白頁(yè)”設置,可以在性能上有顯著(zhù)的改善。打開(kāi)終端窗口,輸入下面的命令查看系統的當前設置:
cat /proc/sys/vm/freepages
這樣將獲得三個(gè)數字,就像下面這樣:
128 256 384
這些是最小空白頁(yè)、空白頁(yè)低和空白頁(yè)高設置。這些值在啟動(dòng)時(shí)決定。最小設置是系統中內存數量的兩倍;低設置是內存數量的4倍;高設置是系統內存的6倍;自由內存不能小于最小空白頁(yè)數。
如果空白頁(yè)數目低于空白頁(yè)高設置,則交換(使用磁盤(pán)空間分配到交換文件)開(kāi)始。當達到空白頁(yè)低設置時(shí),密集型交換開(kāi)始。
增加空白頁(yè)高設置有時(shí)可以改善整體性能,比如試試增加高設置到1MB,用echo命令可以調整這個(gè)設置。使用樣本設置,輸入這個(gè)命令增加空白頁(yè)高設置到1MB:
echo “128 256 1024” > /proc/sys/vm/freepages
注意:當系統還沒(méi)有被使用時(shí)測試這個(gè)設置,以確保在做任何調整時(shí)監視系統性能。這樣可以確定哪個(gè)設置對系統是最好的。
評論