Linux测试硬盘读性能的常用工具-hdparm和dd俩搭档

                                           作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.hparm        # 它用来在基于 Linux的系统上获取或设置硬盘参数,包括测试读性能以及缓存性能等。

1>.安装hdparm工具

[root@node105 ~]# yum -y install hdparm

2>.查看帮助信息

[root@node105 ~]# hdparm -h

-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硬盘的自动省电功能。

3>.显示硬盘的相关信息(可以使用 “fdisk -l” 来查看磁盘信息 )

[root@kafka118 ~]# hdparm /dev/sda

4>.评估硬盘的读取效率

[root@kafka118 ~]# hdparm -t /dev/sda

5>.测试硬盘缓存的读取速度

[root@kafka118 ~]# hdparm -T /dev/sda

6>.直接测试硬盘的读性能

[root@kafka118 ~]# hdparm -tT --direct /dev/sda

7>.查看DMA情况

[root@kafka118 ~]# hdparm -cdt /dev/sda

二.dd           # 使用time命令和dd命令可以简单测试硬盘的写速率

  这不是一个专业的测试工具,不过如果对于测试结果的要求不是很苛刻的话,平时可以使用来对磁盘的读写速度作一个简单的评估.

1>.准备测试环境

[root@flume115 ~]# cat /etc/redhat-release           #操作系统是CentOS 7.5
CentOS Linux release 7.5. (Core)
[root@flume115 ~]#
[root@flume115 ~]#
[root@flume115 ~]# uname -r                #内核是3.10.0-862.el7.x86_64
3.10.-.el7.x86_64
[root@flume115 ~]#
[root@flume115 ~]#
[root@flume115 ~]# uname -m                #查看操作系统的架构
x86_64
[root@flume115 ~]#
[root@flume115 ~]#
[root@flume115 ~]# free -h                #查看内存,相比大家也看出来了,我的测试环境是32G内存
total used free shared buff/cache available
Mem: 31G 489M 29G 20M .3G 30G
Swap: 15G 0B 15G
[root@flume115 ~]#
[root@flume115 ~]# yum -y install iotop sysstat    #安装必要的监控IO的工具,即iotop和iostat

2>.测试写入50G数据,数据量越大,测试值应该更精确(测试过程中,需要关注两点,磁盘的读写速度和IO使用率,我们分别使用iopp和iostat工具来观察。)

[root@flume115 ~]# time -p bash -c "(dd if=/dev/zero of=/home/yinzhengjie/dd.log  bs=1M count=50000)"

3>.执行上述命令后,使用iotop观察占用的I/O情况

[root@flume115 ~]# iotop -o

4>.执行上述命令后,使用iostat观察占用的I/O情况

[root@flume115 ~]# iostat -x 

 4>.验证测试结果

[root@flume115 ~]# time -p bash -c "(dd if=/dev/zero of=/home/yinzhengjie/dd.log  bs=1M count=50000)"
+ records in
+ records out
bytes ( GB) copied, 243.346 s, MB/s
real 244.49
user 0.05
sys 34.66
[root@flume115 ~]#

Linux测试硬盘读性能的常用工具-hdparm和dd俩搭档的更多相关文章

  1. Linux测试硬盘读性能的常用工具-hdparm

    通常情况下可以使用fdisk.df等命令查看硬盘的分区情况以及当前已使用空间大小.剩余空间大小等信息.但是如果要查看硬盘的硬件信息如 硬盘型号.序列号.已运行时间等信息该用什么工具查看呢? 在Linu ...

  2. 分布式进阶(十) linux命令行下载文件以及常用工具:wget、Prozilla、MyGet、Linuxdown、Curl、Axel

    linux命令行下载文件以及常用工具:wget.Prozilla.MyGet.Linuxdown.Curl.Axel 本文介绍常用的几种命令行式的下载工具:wget.Prozilla.MyGet.Li ...

  3. 后台故障&性能分析常用工具

    说明 本文是一个归纳总结,把常用的一些指令,及它们常用的option简单记录了一下,目的是当我们需要工具去定位问题的时候,能够从中找到合适的工具,具体的用法网上有很多博文了,当然还有man手册.参考了 ...

  4. linux操作系统下的码农常用工具

    IDE: Pycharm PHPStorm Zend Studio 文本编辑器: VIM Sublime Text 版本管理: svn RapidSVN git git ui 文件对比: Meld D ...

  5. java性能优化常用工具jmap、jstack

    jmap:java内存映像工具 jmap用于生成堆转储快照,比较常用的option包括-heap,-histo,-dump [root@localhost script]# jmap -h Usage ...

  6. influx测试——单条读性能很差,大约400条/s,批量写性能很高,7万条/s,总体说来适合IOT数据批量存,根据tag查和过滤场景,按照时间顺序返回

    测试准备 需要将InfluxDB的源码放入 go/src/github.com/influxdata 目录 单写测试代码(write1.go): package main import ( " ...

  7. Linux入门视频笔记三(常用工具集)

    一.全局变量(Linux中的全局变量指在整个系统中都能用的变量) 1.USER:当前登录系统的用户的用户名 2.HOME:当前用户的主目录 cd $HOME 或 cd ~可以进入用户主目录 3.PAT ...

  8. java性能优化常用工具jps、jstat、jinfo

    jps:虚拟机进程状况工具 jps可以用来查看虚拟机进程,基本等同于ps -ef|grep java #查看jps的使用文档 [root@localhost script]# jps -help us ...

  9. 使用FIO工具测试块存储性能

    Linux实例和Windows实例都推荐使用FIO工具测试块存储性能.   说明 您也可以使用其他工具测试块存储性能,但不同工具测试出来的硬盘基准性能会有差异,如dd.sysbench.iometer ...

随机推荐

  1. C#基础第七天

    1.ref参数ref参数侧重于将一个变量以参数的形式带到一个方法中进行改变,改变完成后,再讲改变后的值带出来.在使用ref参数的时候需要注意:ref参数在方法外必须为其赋值. 2.方法的重载方法的重载 ...

  2. RHEL6 SoftRaid 更换故障硬盘

    1.手工fail一块硬盘 #mdadm /dev/md0 -f /dev/sdb 2.移除损坏硬盘: #mdadm /dev/md0 -r /dev/sdb 3.添加新的硬盘到已有阵列 mdadm / ...

  3. Javascript DOM(2)

    一.value属性操作 1.具有value属性的三个标签:input.select.textarea 2.value的获取:ele.value input=document.getElementByI ...

  4. 2018/05/14 03:56:10 [error] 12959#0: *42285845507 client intended to send too large body: 1664288 bytes

    Syntax: client_max_body_size size; Default: client_max_body_size 1m; Context: http, server, location ...

  5. CentOS 6.9安装Python2.7.13

    查看当前系统中的 Python 版本 python --version 返回 Python 2.6.6 为正常. 检查 CentOS 版本 cat /etc/redhat-release 返回 Cen ...

  6. Entity Framework Core系列之DbContext(修改)

    上一篇我们介绍了Entity Framework Core系列之DbContext(添加),这一篇我们介绍下修改数据 修改实体的方法取决于context是否正在跟踪需要修改的实体. 下面的示例中实体由 ...

  7. 微信JSSDK使用步骤(用于在微信浏览器中自定义分享,分享到朋友圈,拍照,扫一扫等功能)

    一.使用JSSDK需要一个公众号(需要认证!): (1).把自己项目的服务器地址输入. (2).把MP_verify_m7Qp93BAuIGDWRVO.txt  文件下载下来,放到该服务器域名指向的根 ...

  8. Yesterday when I was young

    Somehow, it seems the love I knew was always the most destructive kind 不知为何,我经历的爱情总是最具毁灭性的的那种 Yester ...

  9. 18.flannel的配置

    Kubernetes网络通信: (1) 容器间通信:同一个Pod内的多个容器间的通信, lo (2) Pod通信:Pod IP <--> Pod IP (3) Pod与Service通信: ...

  10. Announcing the public preview of Azure Dev Spaces

    Today, we are excited to announce the public preview of Azure Dev Spaces, a cloud-native development ...