zoukankan      html  css  js  c++  java
  • Linux 下测试磁盘读写 I/O 速度的方法汇总

    在分布式异构存储系统中,我们经常会需要测量获取不同节点中硬盘/磁盘的读写 I/O 速度,下面是 Linux 系统下一些常用测试方法(之后不定期更新):

    1、使用 hdparm 命令
    这是一个是用来获取ATA/IDE硬盘的参数的命令,是由早期Linux IDE驱动的开发和维护人员 Mark Lord开发编写的( hdparm has been written by Mark Lord<mlord@pobox.com>,the primary developer and maintainer of the (E)IDE driver for Linux, with suggestions from many netfolk)。该命令应该也是仅用于Linux系统,对于UNIX系统,ATA/IDE硬盘用的可能比较少,一般大型的系统都是使用磁盘阵列的。
    使用方法很简单:

    # hdparm -Tt /dev/sda
    /dev/sda:
    Timing cached reads: 6676 MB in 2.00 seconds = 3340.18 MB/sec
    Timing buffered disk reads: 218 MB in 3.11 seconds = 70.11 MB/sec

    可以看到,2秒钟读取了6676MB的缓存,约合3340.18 MB/sec;
    在3.11秒中读取了218MB磁盘(物理读),读取速度约合70.11 MB/sec。

    详细介绍:Linux下硬盘读写速度测试

    2、使用dd命令

    这不是一个专业的测试工具,不过如果对于测试结果的要求不是很苛刻的话,平时可以使用来对磁盘的读写速度作一个简单的评估。另外由于这是一个免费软件,基本上×NIX系统上都有安装,对于Oracle裸设备的复制迁移,dd工具一般都是首选。

    在使用前首先了解两个特殊设备:
      /dev/null 伪设备,回收站。写该文件不会产生IO;
      /dev/zero 伪设备,会产生空字符流,对它不会产生IO。

    测试方法:
    1)测试磁盘的IO写速度

    # time dd if=/dev/zero of=/test.dbf bs=8k count=300000
    300000+0 records in
    300000+0 records out
    10.59s real 0.43s user 9.40s system
    # du -sm /test.dbf
    2347 /test.dbf

    可以看到,在10.59秒的时间里,生成2347M的一个文件,IO写的速度约为221.6MB/sec;当然这个速度可以多测试几遍取一个平均值,符合概率统计。

    2)测试磁盘的IO读速度

    # df -m
    Filesystem 1M-blocks Used Available Use% Mounted on
    /dev/mapper/VolGroup00-LogVol00
    19214 9545 8693 53% /
    /dev/sda1 99 13 82 14% /boot
    none 506 0 506 0% /dev/shm
    # time dd if=/dev/mapper/VolGroup00-LogVol00 of=/dev/null bs=8k
    2498560+0 records in
    2498560+0 records out
    247.99s real 1.92s user 48.64s system

    上面的试验在247.99秒的时间里读取了19214MB的文件,计算下来平均速度为77.48MB/sec。

    3)测试IO同时读和写的速度

    # time dd if=/dev/sda1 of=test.dbf bs=8k
    13048+1 records in
    13048+1 records out
    3.73s real 0.04s user 2.39s system
    # du -sm test.dbf
    103 test.dbf

    详细介绍:Linux 中用 dd 命令来测试硬盘读写速度

     

    3、测试linux下 fprintf fwrite write mmap 等写文件的速度



  • 相关阅读:
    Docker容器启动时初始化Mysql数据库
    使用Buildpacks高效构建Docker镜像
    Mybatis 强大的结果集映射器resultMap
    Java 集合排序策略接口 Comparator
    Spring MVC 函数式编程进阶
    换一种方式编写 Spring MVC 接口
    【asp.net core 系列】6 实战之 一个项目的完整结构
    【asp.net core 系列】5 布局页和静态资源
    【asp.net core 系列】4. 更高更强的路由
    【Java Spring Cloud 实战之路】- 使用Nacos和网关中心的创建
  • 原文地址:https://www.cnblogs.com/sylar5/p/6651784.html
Copyright © 2011-2022 走看看