找回密碼
 立即註冊
查看: 6931|回復: 0

Linux&DMA

[複製鏈接]
發表於 2007-11-30 05:36:12 | 顯示全部樓層 |閱讀模式
一般Linux裝完之後是不是像Windows那樣自動開啟DMA的,有跟我一樣使用Linux的看倌可以試一下︰
  
/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@abc /root]# hdparm -d0 /dev/hda

/dev/hda:

setting using_dma to 0 (off)
using_dma = 0 (off)

[root@abc /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@abc /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@abc /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 是否開啟,對讀取效率影響很大。
如果是ATA100可以用這個︰hdparm -X69 -> UDMA 5 (ATA 100)100MB/sec
我不是每一種主機板南北橋都試過,我只試過Intel的晶片組,還有開啟DMA只對IDE硬碟有效,對SCSI硬碟是無效的。
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

手機版|禁閉室|連繫我們|痞酷網電子技術論壇

GMT+8, 2025-7-1 06:43 PM , Processed in 0.024586 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表