红联Linux门户
Linux帮助

红旗优化之--硬盘篇

发布时间:2006-09-26 00:51:01来源:红联作者:Service
  我们都知道,使用DMA方式传输数据可以占用更少的CPU资源,32位的I/O可以充分发挥电脑的潜能,因此与其***作系统一样,Linux支持硬盘DMA方式和32位的I/O传输数据

  在4.1下的32位I/O和DMA默认是关闭的,而5.0下DMA则默认是开启的,这也是一个进步,但还是16位I/O我们要做的就是只开启32位的I/O

  我们可以用hdparm命令在终端下查看这两项的配置情况
如果要显示当前I/O、DMA配置,命令分别如下:

  显示I/O

  输入:hdarm -c /dev/hda

  显示:/dev/hda:
  I/O support = 0 (16bit)

  显示DMA

  输入:hdparm -d /dev/hda

  显示:/dev/hda:
  using_dma = 1 (on)

  我们只要执行 hdparm -c 1 -k 1 /dev/hda 命令就可以开启32位I/O并使配置生效,其中的-c 1表示开启32位I/O,-c 0是关闭,-k 1表示使配置生效,如果个别机没有开启DMA就加上-d 1参数

  输入:hdparm -c 1 -k 1 /dev/hda

  显示:/dev/hda:
  setting 32-bit IO_support flag to 1
  setting keep_settings to 1 (on)
  IO_support = 1 (32-bit)
  keepsettings = 1 (on)

  在使用这些命令前可以先执行 hdparm -t /dev/hda 显示现在的传输性能,记住这些数据,以便和执行上述命令后有个对比,让你也知道你的硬盘性能高了

  然而这个 hdparm -c 1 -k 1 /dev/hda 命令在重启后作用就会失效,又回到默认状态,我们就又得执行一次,为了不用这么麻烦我们将这个命令随系统启动执行,这行就方便多了

  用文本编辑器打开 /etc/rc.d 下的 rc.local 在其中加入 hdparm -c 1 -k 1 /dev/hda 就可以了,每次开机就会自动执行这个命令。
文章评论

共有 2 条评论

  1. jaffaz 于 2007-01-06 14:31:45发表:

    偶的红旗5.0装笔记本上(神州承运b740g),硬盘的dma和32位传输都没有默认打开。用hdparm只能够打开32位传输,dma却总不行。每当长时间读写硬盘的时候,linux的系统时钟几乎已经停下,系统处于假死机状态。待读写磁盘结束之后,鼠标、键盘的输入才有响应,而系统当前的时间已经比实际时间慢好几分钟了。这样日积月累下去,几个月下来,本本的时间已经是黑白颠倒了!:victory:

  2. hedifang 于 2007-01-05 11:43:12发表:

    我按以上的设置后,用/sbin/hdparm -t /dev/hda显示现在的传输性能,多次测试,不会超过33M/s,而我的UDMA是5呀,而且已经打开了,是怎么回事呢?



    [ 本帖最后由 hedifang 于 2007-1-5 11:52 编辑 ]