linux fio释放内存,FIO使用详解

fio是一个非常灵活的磁盘io测试工具,可以通过多线程或进程模拟各种磁盘io操作,支持13种不同的IO引擎,既可以测试文件系统,也可以测试裸设备。使用简单,支持的文件操作非常多, 可以覆盖到我们能见到的文件使用方式,还可以控制io depth对于测试磁盘的性能很有帮助。

官方地址http://mac.freecode.com/projects/fio

最新版本 fio-2.1.10

centos如果安装了epel源,通过yum可以直接安装

也可以自己编译安装

tar -zxvf fio-x.x.x.tar.gz cd fio-x.x.x make make installfio是一款用于基准和压力测试的I/O工具,fio支持19不同的I/O引擎,(sync, mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio, 及更多)。支持Linux新内核的I/O优先级,I/O速率,子线程及更多的功能。支持裸设备也支持文件系统,支持文本方式的脚本,fio会显示I/O性能信息,支持 Linux, FreeBSD, NetBSD, OpenBSD, OS X, OpenSolaris, AIX, HP-UX, Android, and Windows。fio的特点主要如下 跨平台,支持Unxi、Linux、Windows系统 支持多种I/O引擎 支持命令行和脚本 支持对CPU、内存、线程、i/o非常细致的配置 支持非常丰富的测试类型,有非常细致的参数,使用简单,功能强大fio的参数主要包含以下基本类型 IO 类型 顺序读写、随机读写、混合读写等。 块大小 测试时使用的块大小,可以是一个数值,也可以一个范围 IO 大小 读写数据的大小 IO 队列深度 如果是异步读写,维护多大的一个队列深度 IO 缓存类型 是否打开文件系统的缓存 文件数量 同时读写几个文件 线程数量 同事运行几个线程fio非常强大,参数也非常多,下面按照不同的类型,介绍下详细的参数fio 配置相关的参数--debug 调试模式--version 显示版本信息测试任务相关的参数--output= 文件名 输出到文件--runtime= 限制运行时间 单位为秒-- name= 字符串 测试项目名称--description= 字符串 测试项目描述--filename= 测试文件,也可以制定到裸设备上--size= 测试文件大小--filesize= 单独的文件大小,也可以是一个范围,fio在设定的size只内随机的选择大小,如果没有指定,每个子文件大小相同。读写相关的参数--readwrite= read 顺序读 write 顺序写 trim 顺序trim,只支持Linux块设备 randread 随机读 randwrite 随机写 randtrim 随机trim 只支持Linux块设备 rw,readnwrite 混合读写 randrw 随机混合读写如果是混合读写,默认是 50/50 即50%读加50%的写,对于特定的类型,结果会有些出入,因为速度可能不一样。可以在测试的指定一个数字, rwmixwrite=20 混合读写,写占20% direct=1 或者0 ,1为绕过文件系统的缓存 --blocksize=--bs= 测试块大小,4K 8K 1M 等--bssplit=字符串 需要测试混合块大小的时候使用,可以按照如下的格式 bssplit=4k/10:64k/50:32k/40 4K占10% 64K占50% 32k占40% 也可以不指定百分比,fio会平均分配,比如 bssplit=4k/50:1k/:32k/ 就是4k占50% 1K 32看各占25% bssplit 读写的时候都可以使用运行相关参数--max-job= 运行的最高线程--zero_buffers 如果使用这个参数,fio会初始化IO缓存,并默认使用随机的数据填满缓存。--refill_buffers 强制重新填写读写缓存--iodepth= io队列深度 默认是1--direct= 0或者1 1为关闭文件系统缓存--numjobs= 线程数量--group_reporting 汇总每个进程的信息--lockmem= 固件测试的时候内存大小 比如2G--nrfiles=8 每个进程生成文件的数量fio使用案例文件系统4k顺序读测试 fio --filename=/tmp/test --direct=1 --rw=read --bs=4k --size=15G --numjobs=64 --runtime=300 --group_reporting --name=test-read文件系统4k随机写测试 fio --filename=/tmp/test --direct=1 --rw=randwrite --bs=4k --size=15G --numjobs=64 --runtime=300 --group_reporting --name=test-read裸设备4k顺序写测试 fio --filename=/dev/sdb --direct=1 --rw=write --bs=4k --size=15G --numjobs=64 --runtime=300 --group_reporting --name=test-readfio的输出非常详细,下面是4k随机写的一个测试的结果,可以看到有写吞吐、iops指标,还有cpu利用率、磁盘状态等指标。fio --filename=/test --direct=1 --rw=randwrite --bs=4k --size=1G --numjobs=64 --runtime=300 --group_reporting --name=test-randwrite... write: io=2850.2MB, bw=9726.1KB/s, iops=2431 , runt=300048msec clat (usec): min=159 , max=448315 , avg=410.20, stdev=1208.19 lat (usec): min=159 , max=448315 , avg=411.15, stdev=1208.27 clat percentiles (usec): | 1.00th=[ 203], 5.00th=[ 278], 10.00th=[ 326], 20.00th=[ 346], | 30.00th=[ 366], 40.00th=[ 386], 50.00th=[ 402], 60.00th=[ 418], | 70.00th=[ 434], 80.00th=[ 454], 90.00th=[ 486], 95.00th=[ 516], | 99.00th=[ 724], 99.50th=[ 1032], 99.90th=[ 1368], 99.95th=[ 2224], | 99.99th=[ 8256] bw (KB/s) : min= 3, max= 667, per=1.57%, avg=152.30, stdev=27.63 lat (usec) : 250=3.92%, 500=89.07%, 750=6.14%, 1000=0.32% lat (msec) : 2=0.49%, 4=0.03%, 10=0.02%, 20=0.01%, 50=0.01% lat (msec) : 500=0.01% cpu : usr=0.04%, sys=0.23%, ctx=1548182, majf=0, minf=1844 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued : total=r=0/w=729637/d=0, short=r=0/w=0/d=0Run status group 0 (all jobs): WRITE: io=2850.2MB, aggrb=9726KB/s, minb=9726KB/s, maxb=9726KB/s, mint=300048msec, maxt=300048msecDisk stats (read/write): dm-0: ios=0/766673, merge=0/0, ticks=0/341324, in_queue=341316, util=86.15%, aggrios=0/731075, aggrmerge=0/35722, aggrticks=0/268135, aggrin_queue=267337, aggrutil=85.33% vda: ios=0/731075, merge=0/35722, ticks=0/268135, in_queue=267337, util=85.33%fio 也可以将测试用例写好脚本,通过运行脚本,完成多项测试任务; -- start --[global][random-writers]rw=randwritebs=4Kdirect=1size=30Gnumjobs=63[random-read]rw=randreadbs=4Kdirect=1size=30Gnumjobs=63; -- end --fio的howto参考文档对于fio的使用有非常详细的描述,可以详细阅读,连接地址如下:http://www.bluestop.org/fio/HOWTO.txt

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux fio命令是一款功能非常强大的IO测试工具,可以测试磁盘性能、网络性能等。它可以创建不同类型的IO负载,支持多线程测试,能够测试读写、随机访问等不同场景下的性能表现,并能够生成报告进行分析。使用fio命令可以有效地评估系统IO性能表现,帮助用户找到系统瓶颈,从而优化系统性能。 ### 回答2: Linux Fio命令是一款性能测试工具,它可以用来测试存储设备或文件系统的性能。它可以随机读取、顺序读取、随机写入、顺序写入等测试。下面我们来详细了解一下Linux Fio命令的使用。 1、安装Linux Fio命令 我们可以使用下面的命令在Linux系统中安装Fio:sudo apt-get install fio 2、语法格式 fio [OPTIONS] [fio config files] 其中OPTIONS表示选项,包括:--name、--description、--ioengine、--blocksize等。fio config files表示配置文件的路径。 3、常见的Fio选项 (1)--name:命名当前测试,便于在日志中识别。 (2)--description:为当前测试进行描述,便于说明测试目的。 (3)--ioengine:设定IO引擎,包括async、mmap、sync、pvsync等。 (4)--blocksize:设定块大小,一般为512、4096等。 (5)--iodepth:设定I/O队列深度,一般为1、2、4、8等。 (6)--size:设定测试文件大小。 (7)--time_based:设定测试时间。 (8)--rw:设定读写模式,包括randread、randwrite、read、write等。 (9)--numjobs:设定同时进行的I/O操作数。 4、Fio配置文件 Fio的配置文件采用ini格式,其中包括以下几个关键词: (1)[global]:设定全局参数,如调度器,I/O引擎等。 (2)[job]:指定一个测试任务。 (3)[read]:指定读取操作的设置。 (4)[write]:指定写入操作的设置。 (5)[randread]:指定随机读取操作的设置。 (6)[randwrite]:指定随机写入操作的设置。 (7)[rwmixread]:指定读写比例。 5、使用Fio进行测试 我们可以使用下面的命令进行测试:sudo fio test.fio 其中test.fioFio配置文件的名称,我们也可以使用其他名称。 6、结论 通过使用Fio测试存储设备或文件系统的性能,可以比较客观地了解它们的读写能力,从而选择最合适的存储方案。但是需要注意的是,我们需要根据自己的情况设置合理的参数,才能得到可靠的测试结果。 ### 回答3: Linux下的fio命令是一款非常强大的IO性能测试工具,常用于测试各种存储设备的IO性能,包括硬盘、SSD、NVMe、RAID等。它支持多种IO模式、多种块大小、多种混合读写模式、多种IO引擎、多种输出格式等,可以模拟出各种实际应用场景下的IO负载,非常灵活。 fio命令的基本语法为:fio [options] [jobfile,......]。 其中,options表示命令选项,jobfile表示fio测试工作的配置文件。 fio测试工作的配置文件中,可以指定多个job来测试不同的IO负载。每个job由多个section构成,可以指定section的IO模式、块大小、读写比例、IO深度、运行时间、输出格式等,同时还可以指定多个模拟设备、多个文件或目录进行测试。 fio支持的IO模式包括: - sync:同步IO,即阻塞IO,占用CPU时间长,但IO质量和性能最优。 - async:异步IO,不占用CPU时间,但IO质量和性能较差。 - mmap:内存映射IO,可以将文件映射到内存中进行IO操作。 fio支持的块大小包括: - 512bytes - 1KB - 2KB - 4KB - 8KB - 16KB - 32KB - 64KB - 128KB - 256KB - 512KB - 1MB - 2MB - 4MB - 8MB - 16MB - 32MB - 64MB - 128MB fio支持的读写混合模式包括: - randwrite:随机写入数据 - randread:随机读取数据 - randrw:既有随机写入数据,又有随机读取数据 - readwrite:既有顺序写入数据,又有顺序读取数据 fio支持的IO引擎包括: - sync:同步IO引擎 - mmap:内存映射引擎 - libaio:异步IO引擎 - posixaio:异步IO引擎 - pvsync:相对比sync性能更好的同步IO引擎 fio支持的输出格式包括: - human:人类可读的格式,以KB/s、MB/s、IOPS等为单位 - normal:标准格式,包括各种统计信息,用于后续分析 - json:JSON格式,方便系统集成和自动化测试 总之,fio命令是一款非常强大的IO性能测试工具,可以帮助我们非常准确地测试各种存储设备的IO性能,并针对不同的应用场景进行优化。如果你是一位系统管理员或开发人员,一定要熟练掌握fio命令的使用,它会对你的工作带来很大的帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值