linux磁盘fio压力测试,fio进行磁盘压力测试

fio可以用来测试磁盘IO

常用的参数如下:

filename=/dev/emcpowerb 支持文件系统或者裸设备,-filename=/dev/sda2或-filename=/dev/sdb

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

rw=randwread            测试随机读的I/O

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

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

rw=read                  测试顺序读的I/O

rw=write测试顺序写的I/O

rw=rw                    测试顺序混合写和读的I/O

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

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

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

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

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

ioengine=psync          io引擎使用pync方式,如果要使用libaio引擎,需要yum install libaio-devel包

rwmixwrite=30在混合读写的模式下,写占30%group_reporting          关于显示结果的,汇总每个进程的信息

此外

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

zero_buffers            用0初始化系统buffer

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

测试:

测试随即读:

fio -filename=/home/intellif/pandaTest -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=10G -numjobs=50 -runtime=180 -group_reporting -name=rand_100read_4k

输出如下:

9bd8faf371bf

输出结果

输出结果的说明:

read列,io表明读写磁盘的数据量。bw代表磁盘的带宽,随即读还是很慢的,大约5M/s(和此前自己认为的相差甚远),iops是每秒的io数量,runt是总共花费的时间。

lat(usec),代表io的延迟,单位是纳秒,250=0.02%,表示有0.02%的io花费了250ns

lat(msec0,代表延迟,单位是毫秒,2=0.24%表示有0.24的io花费了3ms,

大部分磁盘随机读的io在10-100ms之间。

其他的输出,现在还不知道什么意思,以后再研究。

测试随即写:

fio -filename=/home/intellif/pandaTest -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=10G -numjobs=50 -runtime=180 -group_reporting -name=rand_100write_4k

输出如下:

9bd8faf371bf

测试结果

随即写的话速率更低,4.4M/秒。

顺序读的测试如下:

fio -filename=/home/intellif/pandaTest -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=4k -size=10G -numjobs=50 -runtime=180 -group_reporting -name=sqe_100read_4k

输出如下:

9bd8faf371bf

测试结果

顺序读达到了848M/秒!!!!没有那么夸张吧,大部分读只需要2ns!!!!!!!!!!!!!!!!难道用到了预读,缓存这些???

顺序写的测试如下:

fio -filename=/home/intellif/pandaTest -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=4k -size=10G -numjobs=50 -runtime=180 -group_reporting -name=sqe_100write_4k

输出如下:

9bd8faf371bf

输出结果

顺序写的带宽在25M/s左右,和顺序读的速率差别太大了吧。

100%随机,70%读,30%写

fio -filename=/home/intellif/pandaTest -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=4k -size=10G -numjobs=50 -runtime=180 -group_reporting -name=randrw_70read_4k

输出结果如下:

9bd8faf371bf

测试结果

随机的话读写速度都不咋地。

io=执行了多少M的IO

bw=平均IO带宽

iops=IOPS

runt=线程运行时间

slat=提交延迟

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=磁盘利用率

4、扩展之IO队列深度

在某个时刻,有N个inflight的IO请求,包括在队列中的IO请求、磁盘正在处理的IO请求。N就是队列深度。

加大硬盘队列深度就是让硬盘不断工作,减少硬盘的空闲时间。

加大队列深度 -> 提高利用率 -> 获得IOPS和MBPS峰值 ->注意响应时间在可接受的范围内,

增加队列深度的办法有很多,使用异步IO,同时发起多个IO请求,相当于队列中有多个IO请求,多线程发起同步IO请求,相当于队列中有多个IO请求。

增大应用IO大小,到达底层之后,会变成多个IO请求,相当于队列中有多个IO请求 队列深度增加了。

队列深度增加了,IO在队列的等待时间也会增加,导致IO响应时间变大,这需要权衡。

为何要对磁盘I/O进行并行处理呢?主要目的是提升应用程序的性能。这一点对于多物理磁盘组成的虚拟磁盘(或LUN)显得尤为重要。

如果一次提交一个I/O,虽然响应时间较短,但系统的吞吐量很小。

相比较而言,一次提交多个I/O既缩短了磁头移动距离(通过电梯算法),同时也能够提升IOPS。

假如一部电梯一次只能搭乘一人,那么每个人一但乘上电梯,就能快速达到目的地(响应时间),但需要耗费较长的等待时间(队列长度)。

因此一次向磁盘系统提交多个I/O能够平衡吞吐量和整体响应时间。

Linux系统查看默认队列深度:

lsscsi -l

9bd8faf371bf

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

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

相关文章

SpringMVC 实例 --非注解【过时的,留作回忆】

练习项目:test SpringMVC 实例 --非注解,只用于学习理解。到了spring 3.0以后或许部分东西已经过时了,在实际工作中并不一定好用。 但对于理解SpringMVC的实现方式很有帮助,在以后使用注解时,会明白是怎么个来龙去脉&a…

云场景实践研究第27期:袋鼠云

更多云场景实践研究案例,点击这里:【云场景实践研究合集】联合不是简单的加法,而是无限的生态,谁会是下一个独角兽 随着网站论坛粉丝数高涨,原有系统架构和服务器性能已无法满足热情高涨的粉丝需求。同时,网…

怎么在电脑上看磁盘分配单元的大小_电脑磁盘到底该不该分区?怎么分区?

“哥,在吗?在你家新买的adolbook14 2020怎么只有一个C盘啊?”“电脑磁盘怎么重新分区啊?在线等!急!”“本电脑小白可太骄傲了,我居然自己给电脑磁盘分区了,一通操作猛如虎!”……那…

电脑如何进入bios模式_华硕笔记本电脑开机自动进入BIOS界面怎么办?

最近很多人的华硕牌子笔记本有问题,说自己开机就直接进入BIOS了。对于这些小白来说,一脸懵逼啊,不知道怎么解决,其实大家也不要着急,坚哥来简单帮大家分析一下。第一、可能系统的文件被更改,从而导致无法启…

springmvc在controller和视图之间传递参数

从视图向controller传递值&#xff0c; controller <--- 视图 1&#xff09;简单类型&#xff0c;如int, String, 应在变量名前加RequestParam注解&#xff0c;例如&#xff1a; RequestMapping("hello3")public String hello3( RequestParam("name" …

苹果手机怎么清理听筒灰尘_怎么清理手机听筒的灰尘?

作为一个专业的强迫症从业者&#xff0c;我已经看不惯手机听筒的灰尘很久了&#xff0c;在经历无数次失败之后&#xff08;针&#xff0c;牙刷&#xff0c;牙签&#xff0c;吸尘器等等&#xff09;。我必须要来分享一个超级实用的方法清理手机听筒的灰尘。那就是&#xff0c;起…

linux mrtg 命令,linux服务器之流量监控(MRTG)

本系列文章原则&#xff1a;灰常详细&#xff0c;灰常简单&#xff0c;新手包学包会&#xff01;因其简单&#xff0c;故未涉及安全性方面的考虑呵&#xff01;本实验服务器为rhel-5-server-i386&#xff0c;客户端为windows xp。本实验所用软件包均在rhel-5-server-i386-dvd.i…

搭建网站必不可少的知识14

安全组配置 “操作”-“安全组配置” 单击“内网入方向”&#xff0c;“添加安全组规则”默认配置即可“确定”。在公网入方向和公网出方向都这样添加上。&#xff08;如果存在就先删除后在添加&#xff09;。现在应该能登录了。 输入密码&#xff0c;点击“确定” 登录后只有一…

8代cpu能跑linux,Intel公布6/7/8代桌面CPU打漏洞补丁性能结果:影响很小

今天&#xff0c;Intel执行副总裁数据、数据中心事业部总经理Navin Shenoy(孙纳颐)发布了第二篇性能测试文章&#xff0c;针对客户端也就是桌面平台用户在打上修复“Spectre”和“Meltdown”漏洞补丁之后的实际情况。对于大部分普通电脑用户来说&#xff0c;性能的影响并不显著…

Spring mvc interceptor配置拦截器

原文&#xff1a;http://blog.csdn.net/liyisong2008/article/details/42915715 -------------------------------------------------------------------------- xml代码&#xff1a; [java] view plaincopy <?xml version"1.0" encoding"UTF-8"?>…

rm: 无法删除swap: 不允许的操作_safe-rm老板再也不用担心我删库跑路啦[视频]

saferm 老板再不怕我删库跑路https://www.zhihu.com/video/1177717527541731328在 linux 上&#xff0c;使用 rm 是一件非常危险的事情(最近又有朋友遇到了我才想起了写这篇文章)&#xff0c;如果不幸手残执行了 rm -rf 删除了重要文件&#xff0c;建议你准备收拾包袱跑路吧。既…

Spring MVC 流程图

Spring工作流程描述1. 用户向服务器发送请求&#xff0c;请求被Spring 前端控制Servelt DispatcherServlet捕获&#xff1b;2. DispatcherServlet对请求URL进行解析&#xff0c;得到请求资源标识符&#xff08;URI&#xff09;。然后根据该URI&#xff0c;调用HandlerMapping获…

kafka maven没有下载_Kafka 系列(三)——Kafka 生产者详解

首先介绍一下 Kafka 生产者发送消息的过程&#xff1a;Kafka 会将发送消息包装为 ProducerRecord 对象&#xff0c; ProducerRecord 对象包含了目标主题和要发送的内容&#xff0c;同时还可以指定键和分区。在发送 ProducerRecord 对象前&#xff0c;生产者会先把键和值对象序列…

python图像分割算法_OpenCV-Python 图像分割与Watershed算法 | 三十四

目标 在本章中&#xff0c; 我们将学习使用分水岭算法实现基于标记的图像分割 我们将看到&#xff1a;cv.watershed() 理论 任何灰度图像都可以看作是一个地形表面&#xff0c;其中高强度表示山峰&#xff0c;低强度表示山谷。你开始用不同颜色的水(标签)填充每个孤立的山谷(局…

NEO从源码分析看共识协议

2019独角兽企业重金招聘Python工程师标准>>> 0x00 概论 不同于比特币使用的工作量证明&#xff08;PoW&#xff09;来实现共识&#xff0c;NEO提出了DBFT共识算法。DBFT改良自股权证明算法&#xff08;PoS&#xff09;&#xff0c;我没有具体分析过PoS的源码&#x…

怎样在linux系统上安装r,Linux系统之路——如何在CentOS7.2安装R(示例代码)

使用ubuntu的小伙伴们直接使用命令sudo apt-get installr-base-dev或者r-base搞定。然而对于使用centos的我却一直卡在安装这一步&#xff0c;十分的悲催&#xff0c;只有羡慕的份&#xff0c;但也不至于在linux上使用不上R。办法还是有的&#xff0c;自己总结出两种方法&#…

linux部署node web,nodejs怎么部署到Linux上?

nodejs怎么部署到Linux上&#xff1f;下面本篇文章就来给大家介绍一下在Linux上部署nodejs的方法&#xff0c;希望对大家有所帮助。nodejs部署到Linux上的方法如下&#xff1a;(建议先安装xshell和xftp)1、到nodejs官网下载压缩包(选择合适自己系统的版本)&#xff0c;放到Linu…

python树莓派 是什么_用树莓派和Python给你的植物浇水

我想指出&#xff0c;我绝不是电子学专家。如果你让我制作一个电路图或者解释某件电子产品工作原理的细节&#xff0c;我会一无所知。在生活中&#xff0c;我对电力的工作原理有了基本的了解&#xff0c;我只是胡乱摆弄了一下电子元件就完成了这个工程。话虽如此&#xff0c;当…

htmlspecialchars() 函数过滤XSS的问题

htmlspecialchars()函数的功能如下&#xff1a; htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。 预定义的字符是&#xff1a; & &#xff08;和号&#xff09;成为 &" &#xff08;双引号&#xff09;成为 " &#xff08;单引号&#xff09;成为 …

用mac的python写网络爬虫_在mac下使用python抓取数据

2015已经过去&#xff0c;这是2016的第一篇博文&#xff01; 祝大家新年快乐&#xff01; 但是我还有好多期末考试&#xff01; 还没开始复习&#xff0c;唉&#xff0c;一把辛酸泪&#xff01; 最近看了一遍彦祖的文章叫做 所以自己也想小试牛刀.于是便开始动手写,但初次接触,…