fio硬盘测速windows+linux
一、FIO工具简介
Fio工具的介绍网上有很多,都是可以通用的,这里就不做太多个人描述了,直接借鉴一下
fio是一种I / O工具,用于基准测试和压力/硬件验证。它支持19种不同类型的I / O引擎(sync,mmap,libaio,posixaio,SG v3,splice,null,network,syslet,guasi,solarisaio等),
I / O优先级(适用于较新的Linux内核) ,评估I / O,分叉或线程作业等等。它可以在块设备和文件上工作。fio以简单易懂的文本格式接受职位描述。包含几个示例作业文件。fio显示各
种I / O性能信息,包括完整的IO延迟和百分位数。Fio在许多地方广泛使用,用于基准测试,QA和验证目的。它支持Linux,FreeBSD,NetBSD,OpenBSD,OS X,OpenSolaris,
AIX,HP-UX,Android和Windows等操作系统。
附加FIO官网地址:http://freshmeat.net/projects/fio/,有兴趣的同学可以自己去看看原版的简介
注意:不要在系统分区做硬盘测试!!!!!!!!!!
在使用fio工具进行硬盘测试过程中, filename参数指定某个要测试的裸设备(硬盘或分区),切勿在系统分区做测试,会破坏系统分区,而导致系统崩溃。
这里一定要注意,我就是因为没注意这个问题,在系统分区做了硬盘测速,导致了下图的悲剧。。o(╥﹏╥)o


二、FIO使用参数说明
这里分为两种参数说明来给大家参考,一种是在输入测速命令时,需要使用的参数,一种是得到测速结果时,需要使用的参数
2.1Fio工具执行读写命令参数说明
filename: 指定文件(设备)的名称。可以通过冒号分割同时指定多个文件,如filename=/dev/sda:/dev/sdb。
directory: 设置filename的路径前缀。在后面的基准测试中,采用这种方式来指定设备。
name: 指定job的名字,在命令行中表示新启动一个job。
direct: bool类型,如果设置成true (1),表示不使用io buffer。
ioengine: I/O引擎,现在fio支持19种ioengine。默认值是sync同步阻塞I/O,libaio是Linux的native异步I/O。
iodepth: 如果ioengine采用异步方式,该参数表示一批提交保持的io单元数。该参数可参考文章“Fio压测工具和io队列深度理解和误区”。
rw: I/O模式,随机读写,顺序读写等等。
bs: I/O block大小,默认是4k。
size: 指定job处理的文件的大小。
numjobs: 指定job的克隆数(线程)。
time_based: 如果在runtime指定的时间还没到时文件就被读写完成,将继续重复知道runtime时间结束。
runtime: 指定在多少秒后停止进程。如果未指定该参数,fio将执行至指定的文件读写完全完成。
group_reporting: 当同时指定了numjobs了时,输出结果按组显示。
output:将测速结果输出到对应文件
lockmem=1g :只使用1g内存进行测试。
=zero_buffers: 用0初始化系统buffer。
nrfiles=8 :每个进程生成文件的数量。
ioscheduler: 尝试切换设备托管文件指定的I / O调度器。
psync : 同步i/o测试
libaio : 异步i/o测试,libaio的读写过程简单说来就是你发出一个读写请求,然后你可以开始做其他事情,当读写过程结束时libaio会通知你你的这次请求已经完成
。。。。还有很多参数,以上只是常用的部分参数
2.2Fio工具读写测速结果参数说明
io= 执行了多少M的IO
bw= 平均IO带宽
iops= IOPS
runt= 线程运行时间
slat 提交延迟 (stdev指标准差)
clat 完成延迟
lat响应时间
bw 带宽
cpu利用率
IO depths=io队列
IO submit=单个IO提交要提交的IO数
IO complete= Like the above submit number, but for completions instead.
IO issued= The number of read/write requests issued, and how many
of them were short.
IO latencies=IO完延迟的分布
io= 总共执行了多少size的IO
aggrb= group总带宽
minb= 最小平均带宽.
maxb= 最大平均带宽.
mint= group中线程的最短运行时间.
maxt= group中线程的最长运行时间.
ios= 所有group总共执行的IO数.
merge= 总共发生的IO合并数.
ticks= Number of ticks we kept the disk busy.
io_queue= 花费在队列上的总共时间.
util= 磁盘利用率
。。。。。同上
三、 linux使用FIO工具进行硬盘测速方式
3.1下载安装包并进行安装
安装包可以从网上下载,也可以从文档结尾的网盘链接内取,这里附上网上的下载地址:https://git.kernel.dk/cgit/fio/
将安装包使用root用户传输至Linux服务器任意目录下
将其解压到当前目录:tar –zxvf ./fioxx-xx.tar.gz

进入解压好的fio目录内:cd fioxx-xx/

开始安装fio,依次按顺序执行以下命令:
./configure
make
make install
安装完毕以后,输入fio –version 查看fio版本

出现fio版本,说明安装成功
3.2 使用fio进行硬盘测速
在root用户下分批次执行以下命令:(以下命令及测速结果全局参数参照Fio使用参数说明)
100%顺序读:
fio -filename=/home/read.dat -direct=1 -iodepth 1 -rw=read -ioengine=psync -bs=1024kb -size=4G -numjobs=1 -runtime=180 -group_reporting -name=sqe_100read_4k
执行结果如下:
图中红框内的bw项为所需硬盘读取测速结果

100%顺序写:
fio -filename=/home/write.dat -direct=1 -iodepth 1 -rw=write -ioengine=psync -bs=1024kb -size=4G -numjobs=1 -runtime=180 -group_reporting -name=sqe_100write_4k
执行结果如下:
图中红框内的bw项为所需硬盘写入测速结果

还有两种常用的命令是随机写和随机读,这里我就不一一做演示了,附上命令:
随机写
fio -filename=/home/randwrite.dat -direct=1 -iodepth 1 -rw=randwrite -ioengine=psync -bs=1024kb -size=4G -numjobs=1 -runtime=180 -group_reporting -name=randwrite
随机读
fio -filename=/home/randread.dat -direct=1 -iodepth 1 -rw=randread -ioengine=psync -bs=1024kb -size=4G -numjobs=1 -runtime=180 -group_reporting -name=randread
大家还可以根据实际需要进行参数的添加和删除
四、windows使用FIO工具进行硬盘测速方式
4.1下载安装包并安装
windows的在线下载需要某PN,所以这里我也提供了部分windows下32位和64位不同版本的安装包在文章结尾,大家可以根据实际情况进行下载使用
将下载好的fio安装包解压到本地,选择一个版本,双击fio-xx-xxx.msi进行安装
安装完毕以后,在C:\Program Files\fio目录下找到fio.exe并双击,然后在当前目录下按住shift键,右键打开PowerShell,输入fio –version,出现版本信息,说明安装成功。

4.2使用fio进行硬盘测速
在打开的PowerShell窗口依次输入以下命令:(以下命令及测速结果全局参数参照Fio工具参数说明)
100%顺序读:
fio.exe --name=4Gread --rw=read --direct=1 --iodepth=1 --blocksize=1024kb --size=4g --ioengine=windowsaio --filename=自定义盘符名称(不可使用系统分区所在盘符!!)--numjobs=1 -group_reporting --runtime=180
执行结果如下:
图中红框内的BW项为所需硬盘读取测速结果

100%顺序写:
fio.exe --name=4Gwrite --rw=write --direct=1 --iodepth=1 --blocksize=1024kb --size=4g --ioengine=windowsaio --filename=自定义盘符名称(不可使用系统分区所在盘符!!) --numjobs=1 -group_reporting --runtime=180
执行结果如下:
图中红框内的BW项为所需硬盘写入测速结果

执行完毕得到测速结果后,windows下无需进行删除操作。
到这里就是目前为止windows和linux使用fio工具进行硬盘测速的整体步骤了,下面是附加的安装包
链接:https://pan.baidu.com/s/1P-HQIdYd0tFYtclijJ_QVw
提取码:6666
转载本文请和本文作者联系授权,本文来自博客园一袭白衣一
fio硬盘测速windows+linux的更多相关文章
- Linux下hdparm硬盘测速
在Linux下可以使用hdparm对硬盘进行测试或者查看硬盘的相关信息.这样你就知道了硬盘读写速度. Hdparm功能说明:显示与设定硬盘的参数. 语 法:hdparm [-CfghiIqtTvyYZ ...
- linux查看主板型号及内存硬件信息,及硬盘测速
查看主板型号: sudo dmidecode |grep -A16 "System Information$" 内存槽及内存条: sudo dmidecode |grep -A ...
- 详解hdparm: linux下的硬盘测速工具
hdparm的功能:显示与设定硬盘的参数.hdparm可检测,显示与设定IDE或SCSI硬盘的参数. 语法: hdparm [-CfghiIqtTvyYZ][-a <快取分区>][-A & ...
- SSD硬盘测速较低的原因备忘
SATA3 SSD测速度盘速度只有200MB/s,可能原因有: 原因分为几种:没开AHCI 没有4K对齐 虽然接的是SATA3接口但SATA3有分为3G和6G这些传输速度接口的分别,同理SATA线3G ...
- vxworks下硬盘测速程序
void speed(int buflen,int mod){/*int mod = 0;*/ int len=50; FILE *fp; unsigned int i=0,j=0,tmp,tmp2; ...
- Linux下3种常用的网络测速工具
大家好,我是良许. 不管你用的是什么操作系统,网速都是你非常关心的一个性能指标,毕竟,谁都不想看个视频结果网速卡到你怀疑人生.本文介绍三个 Linux 命令行下的网络测速工具,让你随时随地知道你的网络 ...
- linux测速软件speedtest-cli
linux测速软件: https://github.com/sivel/speedtest-cli 以下是我在gentoo上测的
- LINUX利用Speedtest测速
那么远程服务器呢?要知道大多数远程服务器是没有浏览器可以打开web页面的.用浏览器打开网页测速的瓶颈就在此,你不能按计划的对服务器进行定期的常规测试.这时需要到一个名为Speedtest-cli的软件 ...
- Linux下 网卡测速
参考: How do I verify the speed of my NIC? Linux下 网卡测速 命令: $ sudo ethtool eth0 Settings for eth0: Supp ...
随机推荐
- js+canvas画随机4位验证码
啥都不说了,复制代码吧!!! <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- pycharm可以运行但无法debug的解决方法
错误信息:pydev debugger: process 4588 is connecting 如果您尝试了网上的很多方法如防火墙设置,去掉 ".idea"文件,甚至重装pycha ...
- 编写高效优雅Java程序
面向对象 01.构造器参数太多怎么办? 如果参数很多,会导致构造方法非常多,拓展性差,代码难编写,且难以看懂. 用JavaBeans模式, get和set 一行构造编程多行代码实现,需要使用额外机制确 ...
- Apache Jmter 压力测试教程
1.官网下载安装包,地址:http://jmeter.apache.org/download_jmeter. 2.下载得到解压包,双击解压. 3.点击/bin目录下面的jmeter.bat 启动软件 ...
- 判断语句 、 while循环 、 for循环
判断语句 语法结构 if 条件1: 如果条件1为真,执行语句块 elif 条件2: 如果条件2为真,执行语句块 elif 条件3: 如果条件2为真,执行语句块 elif 条件n: 如果条件n为真,执行 ...
- IT人35岁危机:到底是因为爱还是责任?
互联网蚕食世界,未来属于IT人. 这是属于互联网的时代,每个人都是网络的弄潮儿,由于网络越来越被需要,互联网IT行业被推上了较高的位置,这也导致IT行业的就业环境火热,越来越多的人被IT行业广阔的发展 ...
- spring boot 在框架中注入properties文件里的值(Spring三)
前一篇博客实现了打开第一个页面 链接:https://blog.csdn.net/qq_38175040/article/details/105709758 本篇博客实现在框架中注入propertie ...
- Kubernetes K8S之Service服务详解与示例
K8S之Service概述与代理说明,并详解所有的service服务类型与示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master Cent ...
- 《k8s权威指南》读书笔记
抽空读完了<k8s权威指南>一书,对k8s的总算有了较为系统的认知. 好记忆不如多写字,以下是读书笔记 第一章 k8s入门 k8s是什么: 一个开源的容器集群管理平台,可提供容器集群的自动 ...
- Python+Appium运行简单的demo,你需要理解Appium运行原理!
坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 目录 一.Appium 的理念 四个原则 1.Web-Selenium 的运行原理 2.Appium ...