首页 运维 网络学院 查看内容

在Linux操作系统下如何开启硬盘DMA

2007-4-2 11:07 628 0

摘要: 注意:/sbin/hdparm命令不支持sata硬盘。 linux下的32位i/o和dma默认是关闭的。如果用的是16位i/o的话,就无法充分发挥电脑的性能。 如果要打开32位i/o和d...
关键词: anima set root hdparm dma drive lwg hda dev 命令

注意:/sbin/hdparm命令不支持sata硬盘。 linux下的32位i/o和dma默认是关闭的。如果用的是16位i/o的话,就无法充分发挥电脑的性能。 如果要打开32位i/o和dma,就需要以root身份进行设置。为了降低因出错而重启系统对文件系统的损害,最好以单用户模式进行。 首先,使用下面的命令检查硬盘驱动器的当前i/o情况: [root@anima lwg]# /sbin/hdparm -t /dev/hda /dev/hda: timing buffered disk reads: 8 mb in 3.31 seconds = 2.42 mb/sec [root@anima lwg]# 如果要显示当前i/o、dma设置,可以分别使用下面的命令: [root@anima lwg]# /sbin/hdparm -c /dev/hda (显示当前i/o设置) /dev/hda: io_support = 0 (default 16-bit) [root@anima lwg]# /sbin/hdparm -d /dev/hda (显示当前dma设置) /dev/hda: using_dma = 0 (off) [root@anima lwg]# 通过上面的命令,已经知道现在32位i/o和dma是关闭的,可以分别用下面的命令将其打开: [root@anima lwg]# /sbin/hdparm -c 1 /dev/hda (打开32位i/o) /dev/hda: setting 32-bit io_support flag to 1 io_support = 1 (32-bit) [root@anima lwg]# /sbin/hdparm -d 1 /dev/hda (打开dma) /dev/hda: setting using_dma to 1 (on) using_dma = 1 (on) [root@anima lwg]# 然后使用下面的命令使设置生效: [root@anima lwg]# /sbin/hdparm -k 1 /dev/hda /dev/hda: setting keep_settings to 1 (on) keepsettings = 1 (on) [root@anima lwg]# 好啦!现在再查看一下驱动器的i/o情况: [root@anima lwg]# /sbin/hdparm -t /dev/hda /dev/hda: timing buffered disk reads: 116 mb in 3.03 seconds = 38.34 mb/sec [root@anima lwg]# 可以看到,现在系统的i/o性能提高了很多。 但是,上面的设置只是对当前的系统有效,当再次重启系统时,又得重新设置了。 如果要使每次系统启动时都打开dma,可以在/etc/rc.d/rc.local文件中添加上面的命令来实现: [root@anima lwg]# echo "/sbin/hdparm -c 1 -d 1 -k 1 /dev/hda" >> /etc/rc.d/rc.local [root@anima lwg]# $page_devide$ hdparm命令帮助: [root@anima lwg]# /sbin/hdparm --help hdparm - get/set hard disk parameters - version v5.7 usage: hdparm [options] [device] .. options: -a get/set fs readahead -a set drive read-lookahead flag (0/1) -b get/set bus state (0 == off, 1 == on, 2 == tristate) -b set advanced power management setting (1-255) -c get/set ide 32-bit io setting -c check ide power mode status -d get/set using_dma flag --direct use o_direct to bypass page cache for timings -d enable/disable drive defect management -e set cd-rom drive speed -f flush buffer cache for device on exit -g display drive geometry -h display terse usage information -i display drive identification -i detailed/current information directly from drive --istdin reads identify data from stdin as ascii hex --istdout writes identify data to stdout as ascii hex -k get/set keep_settings_over_reset flag (0/1) -k set drive keep_features_over_reset flag (0/1) -l set drive doorlock (0/1) (removable harddisks only) -m get/set acoustic management (0-254, 128: quiet, 254: fast) (experimental) -m get/set multiple sector count -n get/set ignore-write-errors flag (0/1) -p set pio mode on ide interface chipset (0,1,2,3,4,...) -p set drive prefetch count -q change next setting quietly -q get/set dma tagged-queuing depth (if supported) -r get/set device readonly flag (dangerous to set) -r register an ide interface (dangerous) -s set standby (spindown) timeout -t perform device read timings -t perform cache read timings -u get/set unmaskirq flag (0/1) -u un-register an ide interface (dangerous) -v defaults; same as -mcudkrag for ide drives -v display program version and exit immediately -w perform device reset (dangerous) -w set drive write-caching flag (0/1) (dangerous) -x tristate device for hotswap (0/1) (dangerous) -x set ide xfer mode (dangerous) -y put ide drive in standby mode -y put ide drive to sleep -z disable seagate auto-powersaving mode -z re-read partition table [root@anima lwg]# 关于硬盘dma: 硬盘的dma模式大家应该都知道吧,硬盘的pata模式有dma33、dma66、dma100和dma133,较新的有sata-150、sata-300。一般来说现在大多数人用的还是pata模式的硬盘,硬盘使用dma模式相比以前的pio模式传输的速度要快2~8倍。dma模式的启用对系统的性能起到了实质性的作用。 dma传输模式: “ultra dma mode *(*为数字,dma33为2, dma66为4,dma100为5、dma133为6)”。linux联盟收集整理。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部