語法:
[root @test /root ]# hdparm [-cdmXTt] [裝置名稱]
參數說明:
-c :提供 32 位元的存取模式,支援的型態有:
-c0:關閉 32 位元存取模式
-c1:開啟 32 位元存取模式
-c3:以較為特殊的 sync 模式開啟 32 位元存取模式(建議值)
-d :是否啟動硬碟的 DMA 模式, 0 為關閉, 1 為開啟。
-m :設定 multiple sector I/O 的模式,通常預設為 16 ,建議值亦為 16 。
-X :設定 IDE/ATA 模式的項目,支援如下的設定:
-X34:開啟 DMA mode 2 (ATA)
-X66:開啟 ultra DMA mode 2 (ATA66)
-T :測試暫存區 cache 的存取效能
-t :測試硬碟的實際存取效能 (較正確!)
例:
[root @test /root]# hdparm -Tt /dev/hda <== 測試 hda 這顆硬碟的 cache
與實際效能
[root @test /root]# hdparm -d0 /dev/hda <==關閉 DMA 模式!
[root @test /root]# hdparm -d1 -c3 -X66 /dev/hda <==開啟 DMA 模式在
DMA 66 ,並且開啟 32 位元存取模式
說明:
這個指令必須要 root 才能執行!此外,需要特別注意, -X
這個參數是很危險的參數設定,除非您非常瞭解您的硬碟架構,否則不建議自行設定,因為 manual
page 上面就有說明到這一點~~不過,無論如何,目前大於 2GB
以上的硬碟至少都已經支援了 DMA 33 了!因?飽A使用 -X66 應該都是可行的!較常建議的硬碟 DMA 開啟功能項
目如下:
hdparm -d1 -X66 -m16 -c3 /dev/hda 另外,基本上目前的 Linux 預設都是開啟
DMA 的模式,因此這個指令的功能相對的重要性就降低了!不過,有一點仍然相當的重要,就是 Linux 預設的 -c
是關閉的,亦即是 -c0 的狀態,所以你可以增加上面的 -c3 來開啟 32 位元的存取模式呦!
當然了,如果你的硬碟真的是很老舊的,那麼就不要開啟的好!
好了!那麼如何開機就啟動 DMA 模式呢?!你可以將上面那一段指令寫入
/etc/rc.d/rc.local 裡面即可!
一、開啟硬碟 DMA 支援。
系統安裝完畢後,硬碟的 DMA 是沒有打開的,我的方法是在
/etc/rc.d/rc.local 最後面加上一行 /sbin/hdparm -d1 -c3 -m16 /dev/hda 這樣每次開機後,硬碟的 DMA 就會開啟,不必每次手動設定。
如果您的硬碟機支援 ATA33 可以加上 -X66 這個參數,ATA66則是 -X68,像我的硬碟是 ATA66 那麼完整參數就是/sbin/hdparm -d1 -X68 -c3 -m16 /dev/hda 經過我的測試 ,在 DMA 未開啟以前,實際讀取效率是每秒約4.10 Mb 左右,開啟 DMA 後,每秒實際讀取效率躍升為 20 Mb 大約提昇 5 倍之多。
§未開啟 DMA 時的測試
[root@firefly /root]# hdparm -d0 /dev/hda
/dev/hda:
setting using_dma to 0 (off)
using_dma = 0 (off)
[root@firefly /root]# hdparm -Tt /dev/hda
/dev/hda:
Timing buffer-cache reads: 128 MB in 2.75 seconds = 46.55 MB/sec
Timing buffered disk reads: 64 MB in 15.58 seconds = 4.11 MB/sec
§開啟 DMA 後的測試結果
[root@firefly /root]# hdparm -d1 -X68 -c3 -m16 /dev/hda
/dev/hda:
setting 32-bit I/O support flag to 3
setting multcount to 16
setting using_dma to 1 (on)
setting xfermode to 68 (UltraDMA mode4)
multcount = 16 (on)
I/O support = 3 (32-bit w/sync)
using_dma = 1 (on)
[root@firefly /root]# hdparm -Tt /dev/hda/dev/hda:
Timing buffer-cache reads: 128 MB in 2.75 seconds = 46.55 MB/sec
Timing buffered disk reads: 64 MB in 3.20 seconds = 20.00 MB/sec
由以上的數據,可以看得出來,硬碟 DMA 是否開啟,對讀取效率影響很大。
关注!!
本站精華裡有一點,不過好像不太細
http://www.chinaunix.net/bbsjh/1/11932.html
http://chinaunix.net/forum/viewtopic.php?t=8576&start=0&postdays=0&postorder=asc&highlight=
使用hdparm或一个叫setcd的程序来降低光驱的速度。
hdparm -E [speed] [cdrom device]
setcd -x [speed] [cdrom device]
echo current_speed:4 >; /proc/ide/[cdrom device]/settings
但这样你需要root权限。下面这个命令也有用处:
echo file_readahead:2000000 >; /proc/ide/[cdrom device]/settings
这把文件预读取设置为2MB,对于刮伤的CD-ROM有好处。如果你把这个值设置的太大,你的光驱会不停的转,显著的降低效率。建议你同时也用hdparm调整你的CD-ROM光驱:
hdparm -d1 -a8 -u1 (cdrom device)
启DMA存取,预读取,和IRQ unmasking(细节解释请阅读hdparm的man page)。
[root @test /root ]# hdparm [-cdmXTt] [裝置名稱]
參數說明:
-c :提供 32 位元的存取模式,支援的型態有:
-c0:關閉 32 位元存取模式
-c1:開啟 32 位元存取模式
-c3:以較為特殊的 sync 模式開啟 32 位元存取模式(建議值)
-d :是否啟動硬碟的 DMA 模式, 0 為關閉, 1 為開啟。
-m :設定 multiple sector I/O 的模式,通常預設為 16 ,建議值亦為 16 。
-X :設定 IDE/ATA 模式的項目,支援如下的設定:
-X34:開啟 DMA mode 2 (ATA)
-X66:開啟 ultra DMA mode 2 (ATA66)
-T :測試暫存區 cache 的存取效能
-t :測試硬碟的實際存取效能 (較正確!)
例:
[root @test /root]# hdparm -Tt /dev/hda <== 測試 hda 這顆硬碟的 cache
與實際效能
[root @test /root]# hdparm -d0 /dev/hda <==關閉 DMA 模式!
[root @test /root]# hdparm -d1 -c3 -X66 /dev/hda <==開啟 DMA 模式在
DMA 66 ,並且開啟 32 位元存取模式
說明:
這個指令必須要 root 才能執行!此外,需要特別注意, -X
這個參數是很危險的參數設定,除非您非常瞭解您的硬碟架構,否則不建議自行設定,因為 manual
page 上面就有說明到這一點~~不過,無論如何,目前大於 2GB
以上的硬碟至少都已經支援了 DMA 33 了!因?飽A使用 -X66 應該都是可行的!較常建議的硬碟 DMA 開啟功能項
目如下:
hdparm -d1 -X66 -m16 -c3 /dev/hda 另外,基本上目前的 Linux 預設都是開啟
DMA 的模式,因此這個指令的功能相對的重要性就降低了!不過,有一點仍然相當的重要,就是 Linux 預設的 -c
是關閉的,亦即是 -c0 的狀態,所以你可以增加上面的 -c3 來開啟 32 位元的存取模式呦!
當然了,如果你的硬碟真的是很老舊的,那麼就不要開啟的好!
好了!那麼如何開機就啟動 DMA 模式呢?!你可以將上面那一段指令寫入
/etc/rc.d/rc.local 裡面即可!
一、開啟硬碟 DMA 支援。
系統安裝完畢後,硬碟的 DMA 是沒有打開的,我的方法是在
/etc/rc.d/rc.local 最後面加上一行 /sbin/hdparm -d1 -c3 -m16 /dev/hda 這樣每次開機後,硬碟的 DMA 就會開啟,不必每次手動設定。
如果您的硬碟機支援 ATA33 可以加上 -X66 這個參數,ATA66則是 -X68,像我的硬碟是 ATA66 那麼完整參數就是/sbin/hdparm -d1 -X68 -c3 -m16 /dev/hda 經過我的測試 ,在 DMA 未開啟以前,實際讀取效率是每秒約4.10 Mb 左右,開啟 DMA 後,每秒實際讀取效率躍升為 20 Mb 大約提昇 5 倍之多。
§未開啟 DMA 時的測試
[root@firefly /root]# hdparm -d0 /dev/hda
/dev/hda:
setting using_dma to 0 (off)
using_dma = 0 (off)
[root@firefly /root]# hdparm -Tt /dev/hda
/dev/hda:
Timing buffer-cache reads: 128 MB in 2.75 seconds = 46.55 MB/sec
Timing buffered disk reads: 64 MB in 15.58 seconds = 4.11 MB/sec
§開啟 DMA 後的測試結果
[root@firefly /root]# hdparm -d1 -X68 -c3 -m16 /dev/hda
/dev/hda:
setting 32-bit I/O support flag to 3
setting multcount to 16
setting using_dma to 1 (on)
setting xfermode to 68 (UltraDMA mode4)
multcount = 16 (on)
I/O support = 3 (32-bit w/sync)
using_dma = 1 (on)
[root@firefly /root]# hdparm -Tt /dev/hda/dev/hda:
Timing buffer-cache reads: 128 MB in 2.75 seconds = 46.55 MB/sec
Timing buffered disk reads: 64 MB in 3.20 seconds = 20.00 MB/sec
由以上的數據,可以看得出來,硬碟 DMA 是否開啟,對讀取效率影響很大。
关注!!
本站精華裡有一點,不過好像不太細
http://www.chinaunix.net/bbsjh/1/11932.html
http://chinaunix.net/forum/viewtopic.php?t=8576&start=0&postdays=0&postorder=asc&highlight=
使用hdparm或一个叫setcd的程序来降低光驱的速度。
hdparm -E [speed] [cdrom device]
setcd -x [speed] [cdrom device]
echo current_speed:4 >; /proc/ide/[cdrom device]/settings
但这样你需要root权限。下面这个命令也有用处:
echo file_readahead:2000000 >; /proc/ide/[cdrom device]/settings
这把文件预读取设置为2MB,对于刮伤的CD-ROM有好处。如果你把这个值设置的太大,你的光驱会不停的转,显著的降低效率。建议你同时也用hdparm调整你的CD-ROM光驱:
hdparm -d1 -a8 -u1 (cdrom device)
启DMA存取,预读取,和IRQ unmasking(细节解释请阅读hdparm的man page)。