Linux下hdparm硬盘测速

在Linux下可以使用hdparm对硬盘进行测试或者查看硬盘的相关信息。这样你就知道了硬盘读写速度。

hdparm
参数:

-a 表示是否关闭磁盘预读取功能。对于大文件读取,这个显然能提高性能。

-A设置硬盘驱动器缓存读取特性。可能就是硬盘缓存开关

-g 显示硬盘的磁轨,磁头,磁区等参数。

-i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。

-I 直接读取硬盘所提供的硬件规格信息。

-p 设定硬盘的PIO模式。

-Tt 评估硬盘的读取效率和硬盘快取的读取效率。

-u; 在硬盘存取时,允许其他中断要求同时执行。

-v 显示硬盘的相关设定。

例子:
1)直接硬盘读测试

[root@apktv ~]# hdparm -tT --direct /dev/sda1
/dev/sda1:
Timing O_DIRECT cached reads: 704 MB in 2.00 seconds = 351.50 MB/sec
HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Inappropriate ioctl for device
Timing O_DIRECT disk reads: 546 MB in 3.01 seconds = 181.43 MB/sec
HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Inappropriate ioctl for device

使用DMA方式传输数据可以占用更少的CPU资源,因此与其它操作系统一样,Linux支持硬盘以DMA方式转输数据,但在安装Red Hat7.0时关于DMA的默认选项是Disable的,当然你可以在安装时就enable它。

hdparm -t /dev/hda 查看IDE的磁盘,Sata或scsi的为:hdparm -t /dev/sda
一硬盘using_dma 为off,读取速度慢;而另一硬盘using_dma 为on,读取速度快。

查看与开启DMA支持执行命令如下:

[root@RJ-RMS root]# hdparm -cdt /dev/hda
/dev/hda:
IO_support   =  0 (default 16-bit)
 using_dma    =  0 (off)
Timing buffered disk reads:  64 MB in 20.84 seconds =  3.07 MB/sec

[root@RJ-RMS root]# hdparm -d1 /dev/hda
/dev/hda:
setting using_dma to 1 (on)
using_dma    =  1 (on)
[root@RJ-RMS root]# hdparm -cdt /dev/hda
/dev/hda:
IO_support   =  0 (default 16-bit)
using_dma    =  1 (on)
Timing buffered disk reads:  64 MB in  1.09 seconds = 58.72 MB/sec

hdparm的改变是个临时的状态,下次再次启动Linux系统的时候hdparm将会消失。所以要想永久的保存修改后的信息,就必须把修改后的参数和数据写入/etc/rc.d/rc.local或/etc/rc.local文档,甚至比启动过程要早运行的程式中。

坏道修复

检查: smartctl -l selftest /dev/sda

卸载: umount /dev/sda*

修复: badblocks /dev/sda

显示硬盘的柱面、磁头、扇区数
#hdparm -g /dev/sda
/dev/sda:

geometry      = 35539[柱面数]/255[磁头数]/63[扇区数], sectors = 570949632[总扇区数], start = 0[起始扇区数]

评估硬盘的读取效率(停止所有服务,多测几次)

root@ubuntu:~# hdparm -T /dev/sda

/dev/sda:
 Timing cached reads:   7540 MB in  2.00 seconds = 3771.50 MB/sec

root@ubuntu:~# hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads:  226 MB in  3.04 seconds =  74.36 MB/sec

root@ubuntu:~# hdparm -Tt /dev/sda

/dev/sda:
 Timing cached reads:   7750 MB in  2.00 seconds = 3876.91 MB/sec
 Timing buffered disk reads:  270 MB in  3.00 seconds =  89.99 MB/sec

-T
用于以基准测试和比较为目的的缓存读取计时.要得到有意义的结果, 应该在内存不少于2M,系统没有其它活动(没有其它活动的程序) 的条件下,重复操作2-3次.它显示了不存取磁盘直接从Linux缓存 读取数据的速度.这项测量实际上标示了被测系统的处理器,缓存 和内存的吞吐量. 如果标志 -t 也被指定,那么一个基于 -T 输出结果的修正量将被综合到 -t 操作报告的结果中.
-t
用于以基准测试和比较为目的的缓存读取计时.要得到有意义的结果, 应该在内存不少于2M,系统没有其它活动(没有其它活动的程序) 的条件下,重复操作2-3次.它显示了不使用预先的数据缓冲从磁盘 这项测量标示了Linux下没有任何文件系统开销时磁盘可以支持多快的连续数据读取.为确保测量的精确,缓存在 -t 的过程中通过BLKFLSBUF控制被刷新. 如果标志 -T 也被指定,那么一个基于 -T 数促结果的修正量将被综合到 -t 操作报告的结果中.

 
 

hdparm(hard disk parameters)

功能说明:显示与设定硬盘的参数。

语  法:hdparm [-CfghiIqtTvyYZ][-a <快取分区>][-A <0或1>][-c <I/O模式>][-d <0或1>][-k <0或1>][-K <0或1>][-m <分区数>][-n <0或1>][-p <PIO模式>][-P <分区数>][-r <0或1>][-S <时间>][-u <0或1>][-W <0或1>][-X <传输模式>][设备]

补充说明:hdparm可检测,显示与设定IDE或SCSI硬盘的参数。

参  数:
-a<快取分区> 设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定。
-A<0或1> 启动或关闭读取文件时的快取功能。
-c<I/O模式> 设定IDE32位I/O模式。
-C 检测IDE硬盘的电源管理模式。
-d<0或1> 设定磁盘的DMA模式。
-f 将内存缓冲区的数据写入硬盘,并清楚缓冲区。
-g 显示硬盘的磁轨,磁头,磁区等参数。
-h 显示帮助。
-i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。
-I 直接读取硬盘所提供的硬件规格信息。
-k<0或1> 重设硬盘时,保留-dmu参数的设定。
-K<0或1> 重设硬盘时,保留-APSWXZ参数的设定。
-m<磁区数> 设定硬盘多重分区存取的分区数。
-n<0或1> 忽略硬盘写入时所发生的错误。
-p<PIO模式> 设定硬盘的PIO模式。
-P<磁区数> 设定硬盘内部快取的分区数。
-q 在执行后续的参数时,不在屏幕上显示任何信息。
-r<0或1> 设定硬盘的读写模式。
-S<时间> 设定硬盘进入省电模式前的等待时间。
-t 评估硬盘的读取效率。
-T 平谷硬盘快取的读取效率。
-u<0或1> 在硬盘存取时,允许其他中断要求同时执行。
-v 显示硬盘的相关设定。
-W<0或1> 设定硬盘的写入快取。
-X<传输模式> 设定硬盘的传输模式。
-y 使IDE硬盘进入省电模式。
-Y 使IDE硬盘进入睡眠模式。
-Z 关闭某些Seagate硬盘的自动省电功能。

hdparm命令 显示与设置硬盘参数 
------------------------------------------------------------------------

.显示硬盘的相关设置
[root@linuxso.com ~]# hdparm /dev/sda
/dev/sda:
IO_support = 0 (default 16-bit)
readonly = 0 (off)
readahead = 256 (on)
geometry = 19929[柱面数]/255[磁头数]/63[扇区数], sectors = 320173056[总扇区数], start = 0[起始扇区数]

.显示硬盘的柱面、磁头、扇区数
[root@linuxso.com ~]# hdparm -g /dev/sda
/dev/sda:
geometry = 19929[柱面数]/255[磁头数]/63[扇区数], sectors = 320173056[总扇区数], start = 0[起始扇区数]

.评估硬盘的读取效率
[root@linuxso.com ~]# hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 166 MB in 3.03 seconds = 54.85 MB/sec
[root@linuxso.com ~]# hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 160 MB in 3.01 seconds = 53.11 MB/sec
[root@linuxso.com ~]# hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 166 MB in 3.00 seconds = 55.31 MB/sec

.评估硬盘快取的读取效率
[root@linuxso.com ~]# hdparm -T /dev/sda
/dev/sda:
Timing cached reads: 3784 MB in 2.00 seconds = 1894.60 MB/sec
[root@linuxso.com ~]# hdparm -T /dev/sda
/dev/sda:
Timing cached reads: 3816 MB in 2.00 seconds = 1909.06 MB/sec
[root@linuxso.com ~]# hdparm -T /dev/sda
/dev/sda:
Timing cached reads: 3728 MB in 2.00 seconds = 1866.29 MB/sec

.检测IDE硬盘的电源管理模式
[root@linuxso.com ~]# hdparm -C /dev/sda
/dev/sda:
drive state is: standby [省电模式]http://www.linuxso.com/command/hdparm.html

 
 
 badblocks命令详解
 
功能说明:检查磁盘装置中损坏的区块。

语  法:badblocks [-svw][-b <区块大小>][-o <输出文件>][磁盘装置][磁盘区块数][启始区块]

补充说明:执行指令时须指定所要检查的磁盘装置,及此装置的磁盘区块数。

硬盘是一个损耗设备,当使用一段时间后可能会出现坏道等物理故障。电脑硬盘出现坏道后,如果不及时更换或进行技术处理,坏道就会越来越多,并会造成频繁死机和数据丢失。最好的处理方式是更换磁盘,但在临时的情况下,应及时屏蔽坏道部分的扇区,不要触动它们。badblocks就是一个检查坏道位置的工具。
一、命令参数
badblocks使用格式为:

引用
badblocks  [  -svwnf  ]  [  -b block-size ] [ -c blocks_at_once ] [ -i
      input_file ] [ -o output_file ] [ -p num_passes ] [ -t test_pattern  ]
      device [ last-block ] [ start-block ]
参数含义是:
引用
-b blocksize 
 指定磁盘的区块大小,单位为字节,默认值为“block 4K ”(4K/block)
-c blocksize 
 每个区块检查的次数,默认是16次
-f
 强制在一个已经挂载的设备上执行读写或非破坏性的写测试操作
 (我们建议先umount设备,然后再进行坏道检测。仅当/etc/mtab出现误报设备挂载错误的时候可以使用该选项)
-i file
 跳过已经显示在file文件中的坏道,而不进行检测(可以避免重复检测)
-o file 
 把检测结果输出到file文件
-p number
 重复搜寻设备,直到在指定通过次数内都没有找到新的坏块位置,默认次数为0 
-s
 在检查时显示进度
-t pattern 
 通过按指定的模式读写来检测区块。你可以指定一个0到ULONG_MAX-1的十进制正值,或使用random(随机)。
 如果你指定多个模式,badblocks将使用第一个模式检测所有的区块,然后再使用下一个模式检测所有的区块。
 Read-only方式仅接受一个模式,它不能接受random模式的。
-v
 执行时显示详细的信息
-w
 对每个区块都先写入,然后再从它读取信息
[device]
 指定要检查的磁盘装置。
[last-block]
 指定磁盘装置的区块总数。
[start-block]
 指定要从哪个区块开始检查
二、示例
badblocks以4096的一个block,每一个block检查16次,将结果输出到“hda-badblocks-list”文件里

# badblocks -b 4096 -c 16 /dev/hda1 -o hda-badblocks-list
hda-badblocks-list”是个文本文件,内容如下:
引用
# cat hda-badblocks-list 
51249 
51250 
51251 
51253 
51254 
……
61245 
……
可以针对可疑的区块多做几次操作。下面,badblocks以4096字节为一个“block”,每一个“block”检查1次, 将结果输出到“hda-badblocks-list.1”文件中,由第51000 block开始,到63000 block结束

# badblocks -b 4096 -c 1 /dev/hda1 -o hda-badblocks-list.1 63000 51000
这次花费的时间比较短,硬盘在指定的情况下在很短的时间就产生“嘎嘎嘎嘎”的响声。由于检查条件的不同,其输出的结果也不完全是相同的。重复几次同样的操作,因条件多少都有些不同,所以结果也有所不同。进行多次操作后,直到产生最后的hda-badblock-list.final文件。
三、其他
1、fsck使用badblocks的信息
badblocks只会在日志文件中标记出坏道的信息,但若希望在检测磁盘时也能跳过这些坏块不检测,可以使用fsck的-l参数:
# fsck.ext3 -l /tmp/hda-badblock-list.final /dev/hda1
2、在创建文件系统前检测坏道
badblocks可以随e2fsck和mke2fs的-c删除一起运行(对ext3文件系统也一样),在创建文件系统前就先检测坏道信息:

# mkfs.ext3 -c /dev/hda1
代码表示使用-c在创建文件系统前检查坏道的硬盘。
这个操作已经很清楚地告知我们可以采用“mkfs.ext3 -c”选项用“read-only”方式检查硬盘。这个命令会在格式化硬盘时检查硬盘,并标出错误的硬盘“block”。用这个方法格式化硬盘,需要有相当大的耐心,因为命令运行后,会一个个用读的方式检查硬盘。

转载于:https://www.cnblogs.com/spcc/archive/2012/07/05/2578263.html

Linux下hdparm硬盘测速相关推荐

  1. 在linux中hdparm作用,Linux下hdparm硬盘测速

    在Linux下可以使用hdparm对硬盘进行测试或者查看硬盘的相关信息.这样你就知道了硬盘读写速度. Hdparm功能说明:显示与设定硬盘的参数. 语 法:hdparm [-CfghiIqtTvyYZ ...

  2. win和linux下的磁盘测速(读写速度)

    win和linux下的磁盘测速(读写速度)1 - 命令行工具测速 后面接Linux下的代码测速 Linux磁盘测速2 - 代码测速 一.linux 下磁盘测速 1. 首先找到都有那些磁盘df命令(di ...

  3. Linux下网络传输测速程序小记

    一.题外话       最近需要在linux下做一个网络测速的小程序,将服务端内存中缓存的一个大文件整个的从服务端发送到客户端,并缓存到客户端的内存中,以此抛开硬盘读取速度的影响,测量网络实际的传输速 ...

  4. Linux下 SpeedTest 工具测速

    1. 概述     目的: 用来测试开发板上的4G 模块网络上传和下载速度:     在Linux的命令行中使用speedtest-cli来测试宽带连接速度.speedtest-cli是一个使用pyt ...

  5. Linux下的十个好用的命令工具:查看系统版本,显示目录的大小,查看硬盘HDD/SSD,硬盘测速,ssh时自动输入密码,查看程序的内存使用情况,查看I/O的速度,查看ssh密码错误日志,查找文件

    文章目录 1.查看系统版本 2.显示目录的大小 3.查看硬盘是HDD还是SSD 4.硬盘测速 5.在ssh的时候自动输入密码 6.查看程序的内存使用情况 7.查看I/O的速度 8.查看ssh密码错误日 ...

  6. Linux磁盘/硬盘测速,dd命令,测试顺序读写,测试4K性能

    笔者也经常在网上查询信息,但发现很多信息都是照搬,内容甚至有错误,可用性很低.笔者就认为如果要分享就应该把遇到的问题真实的分享出来,让更多同路人少走弯路.节约时间. 觉得这篇文章有帮助的同学可以点个赞 ...

  7. Linux下提高硬盘读写速度

    Linux命令:hdparm 功能说明:显示与设定硬盘的参数. 语 法:hdparm [-CfghiIqtTvyYZ][-a <快取分区>][-A <0或1>][-c ][-d ...

  8. 电脑测速软件_不服跑个分!常见固态硬盘测速工具性价比盘点(上)

    尽管不像CPU的核心或线程数量那样直观,固态硬盘性能在近几年电脑硬件中确实增长迅速.不同类型的测速软件也是五花八门,不服跑个分之后,我们能从分数中得到什么?又会因为这次跑分对硬盘产生多少写入量? 笔者 ...

  9. 硬盘读写测试工具_硬盘测速工具:Blackmagic Disk Speed Test Mac

    Blackmagic Disk Speed Test for Mac是Mac上检测硬盘功能的硬盘测速工具,使用disk speed test mac可以检测并验证你的硬盘性能,以及硬盘读入和读出的能力 ...

最新文章

  1. [**经典**] 电脑故障检查不完全流程图
  2. matlab中step_使用MATLAB中bertool进行通信仿真
  3. 算法--微软面试:指定数字在数组中出现的次数
  4. 简单的C++线程类实现, windows平台
  5. 第十二期:七种优秀的浏览器兼容性测试工具
  6. 从欧拉公式看三角波的单边谱与双边谱
  7. SQL执行效率提升几万倍的操作详解!
  8. ubuntu 命令记忆
  9. MyBatis中解决字段名与实体类属性名不相同的冲突
  10. 数据推荐 | 自然场景OCR文字识别数据集一览
  11. Yate for Mac(音乐标签管理工具)
  12. safe6出品--社工密码字典生成器
  13. The Things Network LoRaWAN Stack V3 学习笔记
  14. 视频加水印,怎么给视频加水印?
  15. PHP 文本式留言板源码
  16. 安全沙箱技术赋能企业转型,提效200%!
  17. 取消js单选框的小圆圈
  18. Oracle存储过程基本语法和基础教程
  19. mysql基础架构(一条update语句如何执行)
  20. AT、CVT、双离合有什么优缺点?

热门文章

  1. ubuntu禅道安装
  2. 视频技术的发展对车载移动远程监控行业有何影响?
  3. 深度学习相关读书笔记
  4. 把一个字符串的首字母转成大写,其余为小写。(只考虑英文大小写字母字符)
  5. 宫本茂的童心和乔布斯的叛逆--设计哲学背后的文化基因 (发表于程序员杂志08年第二期)
  6. 叮咚小区算什么社区O2O?
  7. 《转载》【国际惯例】华为十年,干货送给后来人
  8. 【大学生活】搞学习还是搞技术
  9. SSL_2293 暗黑游戏
  10. 飞书信(Facebook Messenger)是什么?