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


                    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.1804 (Core) 
    [root@flume115 ~]# 
    [root@flume115 ~]# 
    [root@flume115 ~]# uname -r                #内核是3.10.0-862.el7.x86_64
    3.10.0-862.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        1.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 1

     4>.验证测试结果

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

  • 相关阅读:
    window多线程编程
    强大的字符数组
    linux设置环境变量一些坑的总结
    Java hello world
    一次音频波形的问题
    0xfffxxx的负数表示
    pcm数据格式存储格式
    Pooled genome sequence strategies |representative genome assembly approaches|Domestication|GERP|selective sweep|Hybridization|Introgression|iHS|SNP genotyping arrays|haplotype
    【转】Fst指数
    index|substr
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/9935478.html
Copyright © 2020-2023  润新知