• T hdparm 硬盘参数设定/检测


    語法:

    [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)。
  • 相关阅读:
    SpringBlade 从cookie中获取token
    SpringBlade 可以通过url地址直接访问页面
    Iphone8 在手机上 快捷复制内容 粘贴到电脑上
    其它/编程 删除合同段SQL
    Python 生成周期性波动的数据 可指定数值范围3 预览的html
    Python 生成周期性波动的数据 可指定数值范围3
    ABP application层 httpget
    接口 PostMan put
    Spark报错:Caused by: java.lang.IllegalArgumentException: Compression codec com.hadoop.compression.lzo
    Spark中普通集合与RDD算子的zip()拉链有什么区别
  • 原文地址:https://www.cnblogs.com/cy163/p/1542140.html
Copyright © 2020-2023  润新知