几种硬盘IO性能测试工具

2023-11-16

dd工具
操作系统: ubuntu 12.04 
测试工具: dd  版本:8.21 执行dd --version来查看

工具说明: 

  • dd命令能粗略测试硬盘IO性能
  • 不足:执行dd命令测试硬盘IO性能,对硬盘的损害很大,不建议多次或长时间尝试.

测试命令: 
1) 读测试 
root@localhost:/# time dd if=/dev/sdf of=/dev/null bs=8k count=100000
10000+0 records in
10000+0 records out
10485760000 bytes (10 GB) copied, 26.524 s, 395 MB/s
real    0m26.526s
user    0m0.008s
sys     0m5.364s


2) 写测试
root@localhost:~$ time dd if=/dev/zero of=/mnt/ssd/w.bat bs=8k count=100000
100000+0 records in
100000+0 records out
819200000 bytes (819 MB) copied, 1.60734 s, 510 MB/s
real    0m1.610s
user    0m0.016s
sys     0m1.588s


3) 读写测试
root@localhost:~# time dd if=/dev/sdb of=/mnt/ssd/rw.bat bs=8k count=100000
100000+0 records in
100000+0 records out
819200000 bytes (819 MB) copied, 12.1117 s, 67.6 MB/s
real    0m12.118s
user    0m0.044s
sys     0m2.436s

其他说明: 后面有个参数比如:oflag=dsync
完整命令: time dd if=/dev/sdb of=/mnt/ssd/rw.bat bs=8k count=100000 oflag=dsync
加入这个参数后,dd在执行时每次都会进行同步写入操作。也就是说,这条命令每次读取8k后就要先把这8k写入磁盘,然后再读取下面这8k,一共重复10万次。这可能是最慢的一种方式了,因为基本上没有用到写缓存(write cache)。加此参数后,测试最严格的,可以模拟数据库的插入操作,所以很慢,可能更接近真实.


fio工具

操作系统: ubuntu 12.04 
测试工具: fio    

测试条件: 需安装,执行命令: apt-get install fio

工具说明: 以顺序读为例子,命令如下:fio -name iops -rw=read -bs=4k -runtime=60 -iodepth 32 -filename /dev/sdf -ioengine libaio -direct=1, 其中rw=read表示随机读,bs=4k表示每次读4k,filename指定对应的分区,这里我是/dev/sdf,direct=1表示不借助缓存 
测试命令:  
1) 顺序读
# fio -name iops -rw=read -bs=4k -runtime=60 -iodepth 32 -filename /dev/sdf -ioengine libaio -direct=1
2) 顺序写
# fio -name iops -rw=write -bs=4k -runtime=60 -iodepth 32 -filename /dev/sdf -ioengine libaio -direct=1
3) 随机读
# fio -name iops -rw=randread -bs=4k -runtime=60 -iodepth 32 -filename /dev/sdf -ioengine libaio -direct=1
4) 随机写
# fio -name iops -rw=randwrite -bs=4k -runtime=60 -iodepth 32 -filename /dev/sdf -ioengine libaio -direct=1


其他说明:
1) fio是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap,libaio,posixaio,SG v3,splice,null,network,syslet, guasi, solarisaio
2) 其他非ubuntu操作系统安装说明
  • wget http://brick.kernel.dk/snaps/fio-2.2.5.tar.gz 
  • yum install libaio-devel
  • tar -zxvf fio-2.2.5.tar.gz
  • cd fio-2.2.5
  • make && make install

IOMeter工具

操作系统: ubuntu 12.04 
测试工具: IOMeter 1.10
工具说明: IOMeter是一款功能非常强大的IO测试软件,它除了可以在本机运行测试本机的IO(磁盘)性能之外,还提供了模拟网络应用的能力
测试步骤: 

1. 从Iometer官方网站 http://www.iometer.org/ 得到安装文件

2. Windowns机器上安装iometer-1.1.0-win32.i386-setup.exe,点下一步安装即可

3. Linux主机上下载并解压:tar -jxvf iometer-1.1.0-linux.x86_64-bin.tar.bz2

4. Linux主机上运行./dynamo -i 127.0.0.1 -m 127.0.0.2   (1:WINDOWS主机,2:LINUX主机)

5. iometer使用

1) 在Disk Targets目录下,设置测试的磁盘为(localhost --> /mnt/ssd),为所有工作机组都选择该磁盘

2) 在Access Specifications目录下为所有工作组选择测试项目(可选默认的,也可添加自定义条件)

3) 在results display目录下,选择update frequency频率为1点击开始测试

4) 点击开始测试 ,等待10分钟,OK
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

几种硬盘IO性能测试工具 的相关文章

  • 在单个命令中使用前缀重命名文件夹中的所有文件

    重命名带有前缀的文件夹中的所有文件 Unix 假设一个文件夹有两个文件 a txt b pdf 那么它们都应该从一个命令重命名为 Unix a txt Unix b pdf 如果您的文件名包含没有空格并且你没有任何子目录 你可以使用一个简单
  • 在64位操作系统上以32位模式和64位模式编译ioctl函数的执行有什么不同?

    我有 64 位 Enterprise SuSE 11 我有一个应用程序 它打开 HIDRAW 设备并在其上操作 ioctl 函数以从该设备获取原始信息 如下所示 struct hidraw devinfo devinfo int fd op
  • 在键盘热插拔上加载模块

    我正在尝试学习如何为 Linux 系统编写模块和驱动程序 类似于this https unix stackexchange com questions 120839 usb kernel module does not load on de
  • Alsa 带有来自调制解调器的 PCM 接口

    我有一个基于 imx28 CPU 的定制板 CPU 的串行端口连接到调制解调器的 PCM 输出 我必须为调制解调器的 PCM 接口开发一个驱动程序 使其成为 ALSA SoC 的一部分 您能指出内核树 中与我的设置重新组合的一些驱动程序吗
  • 对 sf:: 的未定义引用

    我想用 C 制作 GUI 应用程序 发现 SFML 是一个不错的选择 幸运的是 我使用的是 Linux 所以 SFML 2 4 已经安装在我的系统上 所以我开始搜索一些教程并找到了一个制作简单窗口的教程 但是当我运行代码时 出现错误 提示未
  • Linux TCP服务器:在接受连接之前读取客户端的IP地址

    Related C Winsock API如何在接受连接之前获取连接客户端IP https stackoverflow com questions 716209 c winsock api how to get connecting cli
  • 使用netcat将unix套接字传输到tcp套接字

    我正在尝试使用以下命令将 unix 套接字公开为 tcp 套接字 nc lkv 44444 nc Uv var run docker sock 当我尝试访问时localhost 44444 containers json从浏览器中 它不会加
  • 在中断时获取 current->pid

    我正在Linux调度程序上写一些东西 我需要知道在我的中断到来之前哪个进程正在运行 当前的结构可用吗 如果我在中断处理程序中执行 current gt pid 我是否可以获得我中断的进程的 pid 你可以 current gt pid存在并
  • 如何从“git log”中查看 Git 中的特定版本?

    My git log显示为 enter code here git trial git log commit 4c5bc66ae50780cf8dcaf032da98422aea6e2cf7 Author king lt email pro
  • 远程linux服务器到远程linux服务器大型稀疏文件复制 - 如何?

    我有两台 CentOS 5 4 服务器 每台服务器上都安装了 VMware Server 假设我始终对 vmware 虚拟机使用稀疏文件 将虚拟机文件从一台服务器复制到另一台服务器的最可靠 最快速的方法是什么 虚拟机的文件复制起来很痛苦 因
  • Xenomai 中的周期性线程实时失败

    我正在创建一个周期性线程 它在模拟输出上输出方波信号 我正在使用 Xenomai API 中的 Posix Skin 和 Analogy 我使用示波器测试了代码的实时性能 并查看了方波信号 频率为 1kHz 的延迟 我应该实现 250us
  • 使用脚本自动输入 SSH 密码

    我需要创建一个自动向 OpenSSH 输入密码的脚本ssh client 假设我需要通过 SSH 进入myname somehost用密码a1234b 我已经尝试过 bin myssh sh ssh myname somehost a123
  • 如何在 Linux x86_64 上模拟 iret

    我正在编写一个基于 Intel VT 的调试器 由于当 NMI Exiting 1 时 iret 指令在 vmx guest 中的性能发生了变化 所以我应该自己处理vmx主机中的NMI 否则 guest会出现nmi可重入错误 我查了英特尔手
  • Gradle 1.3:build.gradle 不构建类

    这里有一个新问题 我有一个 build gradle 文件apply plugin java在其中 并与 java 项目 包关联 当我跑步时gradle build从命令行我得到 compileJava UP TO DATE process
  • 为什么 ld 无法从 /etc/ld.so.conf 中的路径找到库?

    我想添加 opt vertica lib64进入系统库路径 所以我执行以下步骤 1 添加 opt vertica lib64 into etc ld so conf 然后运行ldconfig 2 检查 bash ldconfig p gre
  • Bash 脚本 - 迭代 find 的输出

    我有一个 bash 脚本 其中需要迭代 find 命令输出的每一行 但似乎我正在迭代 find 命令中的每个单词 以空格分隔 到目前为止我的脚本看起来像这样 folders find maxdepth 1 type d for i in f
  • perf stat中的cycles注释是什么意思

    8 014196 task clock 0 004 CPUs utilized 204 context switches 0 025 M sec 32 cpu migrations 0 004 M sec 0 page faults 0 0
  • 进程名称长度的最大允许限制是多少?

    进程名称允许的最大长度是多少 我正在读取进程名称 proc pid stat文件 我想知道我需要的最大缓冲区 我很确定有一个可配置的限制 但就是找不到它在哪里 根据man 2 prctl http man7 org linux man pa
  • CentOS目录结构是树形的吗?

    CentOS 上有相当于树的东西吗 如果你的 Centos 系统上没有安装 tree 无论如何我通常建议服务器设置使用最小安装磁盘 你应该在命令行中输入以下内容 yum install tree y 如果没有安装 那是因为您没有正确的存储库
  • 如何调用位于其他目录的Makefile?

    我正在尝试这样做 我想打电话给 make Makefile存在于其他目录中 abc可以使用位于不同目录中的 shell 脚本的路径 我该怎么做呢 由于 shell 脚本不允许我cd进入Makefile目录并执行make 我怎样才能编写she

随机推荐

  • 量化交易是如何实现的?

    前面我们讲到 其实最简单的量化交易 就是定投 设置好标的 时间 金额 那么不需自己动手 就可以按照设置的策略进行定投 这就是量化交易的最初形态 那么 为了实现更加复杂一些的交易 比如说 选股 买卖点位的确定 追踪实时行情等 应该怎么去实现呢
  • Python_数据读取_读取单个csv文件和批量读取csv文件

    读取单个csv pd read csv 直接读取单个csv文件通过pd read csv 函数直接在指定路径进行文件读取 需要利用Pandas包 其中 1 路径前的r表示路径符号不转义 window操作系统下不再用调整 为 或 进行文件读取
  • spark dataframe 数据类型转换

    文章目录 1 spark sql数据类型 数字类型 日期类型 复杂类型 2 spark sql和scala数据类型对比 3 spark sql数据类型转换示例 代码 输出 1 spark sql数据类型 数字类型 ByteType 代表一个
  • 解决连接腾讯云Ubuntu服务器,使用Xshell和WinSCP无法直接用root用户登陆

    发现腾讯云服务器登入只能用ubuntu用户名登入 但是无法使用root登录 下面是解决方法 1 首先使用Xshell用ubuntu用户进入系统 输入命令 sudo passwd Enter new UNIX password 然后输入密码
  • 没有权限删除文件

    通过远程发版时 有可能会没有权限删除文件 如下解决方法 1 将user 用户切换root 用户 sudo su root 该方法不一定成功 因为有可能设置权限你不能切换 但成功以后一劳永逸 当方法1没有成功时 采用如下方法 2 将你所操作的
  • 网络请求-登录

    post请求的header中发送本地存储的token 校验服务器中是否存在
  • jsbridge原理_Hybrid App技术解析 -- 原理篇

    引言 随着 Web 技术和移动设备的快速发展 Hybrid 技术已经成为一种最主流最常见的方案 一套好的 Hybrid架构方案 能让 App 既能拥有极致的体验和性能 同时也能拥有 Web技术 灵活的开发模式 跨平台能力以及热更新机制 想想
  • FLatten Transformer 简化版Transformer

    今天在找论文时 看到一篇比较新奇的论文 在这里跟大家分享一下 希望可以给一些人提供一些思路 虽然现在Transformer 比较火 在分割上面也应用的比较多 但是我一直不喜欢用 其中一个原因是结构太复杂了 平时我主要用一个sel atten
  • Java正则工具类:字母数字下划线、数据库url校验等

    文章目录 前言 一 正则基础语法 二 正则工具类 总结 前言 本文内容观摩的是其他作者的代码 在基础上增加修改了一些 参考原文地址 java用正则表达式 提示 以下是本篇文章正文内容 下面案例可供参考 一 正则基础语法 字符 描述 匹配输入
  • RabbitMQ --- 惰性队列、MQ集群

    一 惰性队列 1 1 消息堆积问题 当生产者发送消息的速度超过了消费者处理消息的速度 就会导致队列中的消息堆积 直到队列存储消息达到上限 之后发送的消息就会成为死信 可能会被丢弃 这就是消息堆积问题 解决消息堆积有三种思路 增加更多消费者
  • Numpy中的转换成数组的array函数(更新中)

    今天给大家讲解一下图像处理和深度学习里面一个常用的函数array array的功能是接收一个多位置数 例如列表list 元 组tuple等 列表 list1 1 2 3 list2 1 2 3 list3 1 2 3 元组 tuple 1
  • 单片机串口时序与TTL电平

    串口是一个广义的概念 这是单讲单片机的串口UART 以及单片机的TTL电平 主要是记录一下自己忘了还能再看一下 1 TTL电平标准 输出 L lt 0 8V H gt 2 4V 输入 L lt 1 2V H gt 2 0V TTL器件输出低
  • VTK笔记-体绘制-vtkVolume

    体渲染 体渲染是一个用于描述3D数据渲染过程的术语 这里的3D数据是指其属性信息遍及3D空间 而不是一个在3D空间中的2D曲面 面渲染是对数据的表面或者一个抽取的轮廓进行渲染 是通过对面上的标量属性进行显示的 面渲染能显示其表面或者一个抽取
  • 常用数据结构与算法:二叉堆(binary heap)

    一 什么是二叉堆 二 二叉堆的实现 三 使用二叉堆的几个例子 一 什么是二叉堆 1 1 二叉堆简介 二叉堆故名思议是一种特殊的堆 二叉堆具有堆的性质 父节点的 键值 总是大于或等于 小于或等于 任何一个子节点的键值 二叉堆又具有二叉树的性质
  • vue 集成file-saver和xlsx 实现前端表格导出

    1 npm安装 npm install xlsx save npm install file saver save 2 创建export js import FileSaver from file saver import as XLSX
  • ntp时间同步软件_MES、SCADA项目中的时间同步—S7-1500和PC通过NTP进行时间同步

    写在面前 文中链接仅在微信公众号有效 大家好 我是小智 智能制造之家号主 前面我们在谈到MES SCADA项目的时候 更多的是从网络 从通讯协议 从数据采集方向去阐述 比如网络丢包 比如modbus TCP 比如S7 COMM 又比如网络冗
  • 踩坑之路(jpa的批量插入) Oracle

    今天做项目的一个需求 需要把其他地方的数据存储到本地数据里面 没想到一次踩了两个坑 因为需要保存的数据很大 而且每天都需要保存一次 第一次用的jpa的saveAll方法 测试了一遍 保存下来总共花了50分钟 老大看时间的太慢了 提醒了我一下
  • day10-Dom操作

    js Dom 概述 1 通过js获取页面上的元素 2 操作元素 2 1 操作元素的样式 2 2 操作元素的类名 2 3 操作元素属性 2 4 操作元素的内容 2 5 获取元素在dom中的一些信息 3 利用js来生成 添加 删除 修改 克隆元
  • 盘点一个Python自动化办公需求——获取文件夹下所以文件夹的名字,并存excel为一列

    01 前言 这个事情还得从前几天在Python最强王者群 东哥 问了一个Python自动化办公处理的问题 需求倒是不难 一起来看看吧 02 实现过程 这里 wangning 又给了一个答案 他自己之前整理的文章 不过需要自己稍微修改下才行
  • 几种硬盘IO性能测试工具

    dd工具 操作系统 ubuntu 12 04 测试工具 dd 版本 8 21 执行dd version来查看 工具说明 dd命令能粗略测试硬盘IO性能 不足 执行dd命令测试硬盘IO性能 对硬盘的损害很大 不建议多次或长时间尝试 测试命令