歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> Linux下的硬盤提速方案

Linux下的硬盤提速方案

日期:2017/3/6 15:43:51   编辑:關於Unix
目前很多朋友都用上了大容量的DMA或UDMA-33標准的硬盤。在微軟的 Windows 98下為了使得DMA或UDMA-33標准的硬盤提高數據傳輸速率,可以在計算機的CMOS或操作系統中打開IDE硬盤的DMA(直接存儲器存取)這項功能。但是在 Linux 平台中,Linux是不會自動的打開DMA 目前很多朋友都用上了大容量的DMA或UDMA-33標准的硬盤。在微軟的Windows98下為了使得DMA或UDMA-33標准的硬盤提高數據傳輸速率,可以在計算機的CMOS或操作系統中打開IDE硬盤的DMA(直接存儲器存取)這項功能。但是在Linux平台中,Linux是不會自動的打開DMA模式,所以在Linux中使用這些IDE接口的UDMA-33標准的硬盤感覺數據傳輸遠遠沒有在Windows中快。事實上,Linux平台中也可以通過軟件來打開DMA模式,以下就是Linux下的硬盤提速的具體做法。


  首先,在Linux下打開DMA模式之前,最重要的事情就是備份硬盤上的數據。因為在開啟DMA模式之後誰也無法預料到硬盤是否還能正常工作,數據是否還完整。把Linux下所有的重要數據備份到其他硬盤或是CD-R等存儲媒介上是最好的選擇,請不要把數據備份在同一塊硬盤上,更不能把數據備份到同一個硬盤分區。
第二步需要修改hdparm目錄下的一些設備節點參數。但是修改這些參數必須以超級用戶(ROOT)的身份登陸Linux系統才行。普通Linux用戶沒有這個權限修改hdparm目錄下的東西。下面就是一個修改硬盤設備節點參數的例子,注意,不同型號,不同容量的硬盤可能列出的參數不太一樣,但是修改的過程和方法大體上是一樣的。

# /sbin/hdparm /dev/hda
/dev/hda:
multcount = 0 (off)
I/O support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
nowerr = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 629/240/63, sectors = 9514260, start = 0
#

  要注意的是,OFF代表此參數不起作用,ON表示打開此功能或模式。上面的參數列表寫的非常清楚,Multcount(多扇區讀) 沒有打開;此硬盤格式為16位格式;DMA數據傳輸模式沒有打開。很顯然,這樣的參數並沒有使硬盤達到最佳的優化,沒有能完全發揮當今高速IDE硬盤的性能
為了優化硬盤,提高硬盤的數據傳輸速率,首先還是要了解以下這些參數的含義:

c3 :就是把硬盤的16位格式轉換為32位模式。
m16 :改變硬盤的多路扇區的讀功能,-m16可以使得硬盤一次讀入16個扇區的數據。但是不是所有的硬盤都支持這個功能。使用hdparm -i /dev/hda 可以察看您的硬盤最大能讀寫的扇區數目。
d1X34 在支持DMA-capable的硬盤中,這個參數可以支持雙DMA通道的數據傳輸模式。
d1X66 在支持UDMA-capable的硬盤中,這個參數可以支持雙DMA通道的數據傳輸模式。
  了解以上參數的作用和含義之後,現在請您仔細檢查硬盤上面上的標簽,看看您的硬盤是否支持DMA 或者 UDMA模式,然後才對照這些參數來優化您的硬盤,以防出現不可預見的錯誤。
優化硬盤的參數,也可以參考下面的例子,注意,不是所有的硬盤都適用一下的優化參數,請按照實際情況來設置參數:


# hdparm -d1X66 -m16 -c3 /dev/hda
# hdparm /dev/hda
/dev/hda:
multcount = 16 (on)
I/O support = 3 (32-bit w/sync)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
nowerr = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 629/240/63, sectors = 9514260, start = 0

  修改完這些參數之後,有時候並不能一次性把硬盤優化成功。如果在硬盤還在正常工作的時候修改這些數據,硬盤會進入“休眠”狀態。這就需要等硬盤燈會熄滅,硬盤不處於繁忙狀態下優化硬盤參數比較容易成功。

  hdparm的改變是一個臨時的狀態,下次再次啟動Linux系統的時候hdparm將會消失。所以要想永久的保存修改後的信息,就必須把修改後的參數和數據寫入/etc/rc.d/rc.local或者/etc/rc.local文件,甚至比啟動過程要早運行的程序中。

  最後要提醒大家的是,如果您的主板的芯片組或Linux內核kernel(比如內核kernel版本過於陳舊,2.2版以前)如果不支持UDMA模式,那就沒有必要去修改硬盤設備的參數了。升級主板或者kernel是解決這個問題的較好選擇。

Copyright © Linux教程網 All Rights Reserved