Linux服务器iops性能测试-fio

 FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet,guasi, solarisaio 等等。

fio 官网地址:http://freecode.com/projects/fio

 

FIO用法:

随机读:

fio -filename=/dev/sdb1 -direct=1 -iodepth1 -thread -rw=randread -ioengine=psync -bs=16k -size=200G -numjobs=10-runtime=1000 -group_reporting -name=mytest

 

说明:

filename=/dev/sdb1       测试文件名称,通常选择需要测试的盘的data目录。

direct=1                 测试过程绕过机器自带的buffer。使测试结果更真实。

rw=randwrite             测试随机写的I/O

rw=randrw                测试随机写和读的I/O

bs=16k                   单次io的块文件大小为16k

bsrange=512-2048         同上,提定数据块的大小范围

size=5g   本次的测试文件大小为5g,以每次4k的io进行测试。

numjobs=30               本次的测试线程为30.

runtime=1000             测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。

ioengine=psync           io引擎使用pync方式

rwmixwrite=30            在混合读写的模式下,写占30%

group_reporting          关于显示结果的,汇总每个进程的信息。

 

这个工具最大的特点是使用简单,支持的文件操作非常多, 可以覆盖到我们能见到的文件使用方式:
sync:Basic read(2) or write(2) I/O. fseek(2) is used to position the I/O location.
psync:Basic pread(2) or pwrite(2) I/O.
vsync: Basic readv(2) or writev(2) I/O. Will emulate queuing by coalescing adjacents iOS into a single submission.
libaio: Linux native asynchronous I/O.
posixaio: glibc POSIX asynchronous I/O using aio_read(3) and aio_write(3).
mmap: File is memory mapped with mmap(2) and data copied using memcpy(3).
splice: splice(2) is used to transfer the data and vmsplice(2) to transfer data from user-space to the kernel.
syslet-rw: Use the syslet system calls to make regular read/write asynchronous.
sg:SCSI generic sg v3 I/O.
net : Transfer over the network. filename must be set appropriately to `host/port’ regardless of data direction. If receiving,
only the port argument is used.
netsplice: Like net, but uses splice(2) and vmsplice(2) to map data and send/receive.
guasi The GUASI I/O engine is the Generic Userspace Asynchronous Syscall Interface approach to asycnronous I/O.

 

此外

lockmem=1g               只使用1g内存进行测试。

zero_buffers             用0初始化系统buffer。

nrfiles=8                每个进程生成文件的数量。

 

顺序读:

fio -filename=/dev/sdb1 -direct=1 -iodepth1 -thread -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000-group_reporting -name=mytest

 

随机写:

fio -filename=/dev/sdb1 -direct=1 -iodepth1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30-runtime=1000 -group_reporting -name=mytest

 

顺序写:

fio -filename=/dev/sdb1 -direct=1 -iodepth1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30-runtime=1000 -group_reporting -name=mytest

 

混合随机读写:

fio -filename=/dev/sdb1 -direct=1 -iodepth1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G-numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop

 转自:http://blog.csdn.net/youngstonep/article/details/52315192

 

注意事项

使用fio工具测试磁盘iops后,可能会导致磁盘下的文件损坏,出现Structure needs cleaning错误。 

解决办法(会造成数据丢失)参考以下链接:

http://www.jb51.net/LINUXjishu/225992.html

 

今天在使用fio进行IO测试的时候,文件系统/home分区遇到了mount: Structure needs cleaning 报错。大致情况:

/home分区是xfs文件系统;

执行fio进行多进程测试;

测试完毕之后,执行du -hs /home/*,部分文件的数据提示 “mount: Structure needs cleaning”报错;

解决方法

可以使用xfs_repair来修复,但是要注意 xfs_repair修复的分区中的文件都会丢失,即使是du能正常显示的文件也会丢失。

处理步骤:

umount /home
xfs_repair /home
mount /home

挂载命令也可用: mount /dev/sdc1 /mnt/usbhd1    —— 第一个参数是设备号,第二个参数是目录

 

该工具一定要谨慎使用!损坏的数据目前还没办法恢复!!!

转载于:https://www.cnblogs.com/willdoop/p/7220747.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487940.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

志澄观察:卫星互联网——太空经济新动力

图1 卫星互联网的组成来源:远望智库 引 言2020年04月20日国家发改委首次明确,将卫星互联网列入我国新型基础设施的范围,这项重大的战略决策,大大鼓舞了我国商业航天行业的信心。另一方面,2020年3月27日,在发展低…

java中位数_java 计算中位数方法

最近工作需要 要求把python的代码写成java版本,python中有一个np.median()求中位数的方法,java决定手写一个先说说什么是中位数:中位数就是中间的那个数,如果一个集合是奇数个,那么中位数就是按大小排列后,…

Unity 找到隐藏的UGUI

问题描述:在项目中需要在一开始将一个UGUI隐藏,之后在特定的时候再显示。 本来想的办法是在需要显示的时候调用GameObject.Find()找到这个UI并设置active, 但发现找出来的为null,经查阅资料发现GameObject.Find()只能find没有被隐…

一文读懂电磁学发展史[图文版]

来源:电子万花筒电磁学或称电动力学或经典电动力学。之所以称为经典,是因为它不包括现代的量子电动力学的内容。电动力学这样一个术语使用并不是非常严格,有时它也用来指电磁学中去除了静电学、静磁学后剩下的部分,是指电磁学与力…

java判断优先级代码_java运算符的优先级

下图是每种运算符的优先级&#xff0c;按照运算先后顺序排序(优先级相同的情况下&#xff0c;按照从左到右的顺序依次运算)优先级描述运算符1括号()、[]2正负号、-3自增自减&#xff0c;非、--、!4乘除&#xff0c;取余*、/、%5加减、-6移位运算<>、>>>7大小关系…

python语言学习笔记整理

什么是程序? 程序等于数据结构加算法&#xff0c;那么数据结构是一个静态的东西&#xff0c;算法是一个动态的东西&#xff0c;我们用一个新的语言编写这个程序&#xff0c;我们要考虑到语言也主要由数据结构和算法相关的东西&#xff0c;或静态或动态的东西来构成&#xff0c…

人机智能既不是人类智能,也不是人工智能

来源&#xff1a;人机与认知实验室从前&#xff0c;一个教授&#xff0c;去一个穷乡僻壤里头坐船过江&#xff0c;就问船上的船工&#xff1a;你学点数学没有&#xff1f;没有。你学点物理没有&#xff1f;没有。那懂不懂计算机啊&#xff1f;不懂。教授感叹这三样都不会&#…

使用HDFS客户端java api读取hadoop集群上的信息

本文介绍使用hdfs java api的配置方法。 1、先解决依赖&#xff0c;pom <dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.7.2</version><scope>provided</scope>&l…

USACO 1.2 Milking Cows (枚举)

标记数组&#xff08;哈希&#xff09; 1e6的范围&#xff0c;开一个char数组全然能够&#xff0c;有人为1&#xff0c;无人为0&#xff0c;注意边界就可以。最后线性扫描就可以。时间复杂度&#xff0c;应该是O(n),n为最后结束的时间。缺点就是……比較慢 /*ID:twd30651PROG:m…

赛博朋克之后的科幻建筑是什么样的?

来源&#xff1a;苇草智酷粗略地浏览一下 tumblr 或 Pinterest 论坛的兴趣推送&#xff0c;你会发现我最近痴迷于科幻作品美学。更具体地说&#xff0c;我一直在想&#xff0c;在过去35年甚至更久时间里流行的设计美学——赛博朋克&#xff08;Cyberpunk&#xff09;之后&#…

牛客网java_牛客网java

1&#xff1a;下列代码运行的结果是什么&#xff1f;public classP {public static int abc 123;static{System.out.println("P is init");}}public class S extendsP {static{System.out.println("S is init");}}public classTest {public static voidma…

C#代理多样性

一、代理 首先我们要弄清代理是个什么东西。别让一串翻译过来的概念把大家搞晕了头。有的文章把代理称委托、代表等&#xff0c;其实它们是一个东西&#xff0c;英文表述都是“Delegate”。由于没有一本权威的书来规范这个概念&#xff0c;所以现在网上对它的称谓不一。本文我将…

AMD 和 Intel 之战:CPU 哪家强?

来源&#xff1a;嵌入式资讯精选作者 | Paul Alcorn译者 | 弯月&#xff0c;责编 | 郭芮以下为译文&#xff1a;不论是选游戏CPU还是桌面应用的CPU&#xff0c;我们只有两种选择&#xff1a;AMD或者英特尔。两家都有各自的粉丝&#xff0c;所以想买CPU的人很难获得中肯的建议&a…

issubclass在python中的意思_python基础之类的isinstance与issubclass、反射

一 isinstance(obj,cls)和issubclass(sub,super)isinstance(obj,cls)检查是否obj是否是类 cls 的对象class Foo:passobj Foo()print(isinstance(obj,Foo))issubclass(sub, super)检查sub类是否是 super 类的派生类class Foo:passclass Bar(Foo):passprint(issubclass(Bar,Foo)…

华为的汽车芯片布局

来源&#xff1a;电子发烧友综合报道&#xff0c;内容参考自雷锋网、IT之家、CnBeat&#xff0c;转载请注明以上来源由于政策扶持&#xff0c;新能源汽车发展迅速&#xff0c;华为也开始进军新能源汽车市场&#xff0c;最近动作频繁&#xff0c;例如联合意法半导体研发汽车芯片…

Linux - which xxx - 查找执行的命令所在的路径

Linux 下&#xff0c;我们常使用 cd ,grep,vi 等命令&#xff0c;有时候我们要查到这些命令所在的位置&#xff0c;如何做呢&#xff1f; Linux 下有2个命令可完成该功能&#xff1a;which ,whereis which 用来查看当 前要执行的命令所在的路径。 whereis 用来查看一个命令或者…

java 数据库 事务 只读_java – odd SQLException – 无法检索转换只读状态服务器

我有一个Quartz作业&#xff0c;每5分钟一次在MySQL数据库中执行一个存储过程&#xff0c;由于某种原因&#xff0c;3个执行中有1个失败&#xff0c;并提供了这个奇怪的异常。我搜索并搜索了这个异常是什么意思&#xff0c;但是我找不到解决方案。这是完整的堆栈跟踪&#xff1…

【转】JMeter学习(二十七)Jmeter常见问题

收集工作中JMeter遇到的各种问题1. JMeter的工作原理是什么&#xff1f;向服务器提交请求&#xff1b;从服务器取回请求返回的结果。2. JMeter的作用&#xff1f;JMeter可以用于测试静态或者动态资源的性能&#xff08;文件、Servlets、Perl脚本、java对象、数据库和查询、ft…

大热下的 GNN 研究面临哪些“天花板”?未来的重点研究方向又在哪?

作为脱胎于图论研究的热门研究领域&#xff0c;图神经网络&#xff08;GNN&#xff09;与经典的 WL 算法有诸多相似之处。众所周知&#xff0c;强大的 WL 算法对于聚合函数的单射性质有很强的要求&#xff0c;那么强大的 GNN 应该具备哪些性质呢&#xff1f;研究大热下&#xf…

java将一个对象赋值给另一个对象_java一个对象赋值给另一个对象,支持平铺类和层级类间的互转...

场景&#xff1a;将一个层级类对象(领域驱动model对象)转换为平铺类对象(view)src对象&#xff0c;(红框为子对象)target对象(平铺对象)代码思路&#xff0c;先递归反射遍历出所有字段&#xff0c;存到一个map里&#xff0c;再递归赋值给target对象缺陷&#xff1a;不同子对象间…