文件系统性能测试--iozone
iozone
一个文件系统性能评测工具,可以测试Read, write, re-read,re-write, read backwards, read strided, fread, fwrite, random read, pread, mmap, aio_read, aio_write 等不同模式下不同文件系统的读写性能
参数
参数 | 说明 |
---|---|
-a | 全自动模式测试。测试记录块大小从4k到16M,测试文件从64k到512M |
-A | 使用自动模式虽然测试比较全面,但是比较花时间。-a选项将在文件大于32MB时停止使用低于64k一下记录块,来节省时间。-A通知iozone不要节省时间,进行所有测试。注:在3.61版本以后不建议使用,用-az代替-aA |
-B | 使用mmap()。这将使用mmap()接口来创建并访问所有测试用的临时文件。一些应用程序倾向于将文件当作内存的一块来看待。这些应用程序对文件执行mmap()调用,然后就可以以读写内存的方式访问那个块来完成文件I/O。 |
-c | 计算时间将close()包括进来 |
-C | 显示吞吐量测试中每个客户端的字节数。 |
-D | 对mmap文件使用MSYNC(MS_ASYNC)。告诉操作系统在mmap空间的所有数据需要被异步的写到磁盘上。 |
-e | 测试时间是包含flush(fsync, fflush) |
-f filename | 指定用来测试临时文件,在测试完成后将被自动删除 |
-F filename filename … | 指定测试中每个临时文件名,文件名的数量应该和指定的进程或线程数相同 |
-g # | 在自动模式下设置文件最大值,可以使用#k #m #g分别表示kb,mb,gb |
-G | 对mmap文件使用msync(MS_SYNC)。告诉操作系统在mmap空间的所有数据需要被同步的写到磁盘上 |
-h | 显示帮助 |
-i # | 指定运行于哪种模式测试。可以使用-i # -i # -i #进行多个测试 |
0=write/rewrite | |
1=read/re-read | |
2=random read/random write | |
3=backwards read | |
4=re-write-record | |
5=stride-read | |
6=fwirte/re-fwrite | |
7=fread/re-fread | |
8=random mix | |
9=pwrite/re-pwrite | |
10=pread/re-pread | |
11=pwritev/re-pwritev | |
12=preadv/re-preadv | |
-I | 对所有文件操作使用DIRECT I/O。通知文件系统所有操作跳过缓存直接在磁盘上操作 |
-j # | 设置访问文件的跨度为(# * 块)。stride read测试将使用这个跨度来读块 |
-J #(毫秒) | 在每个I/O操作之前产生指定毫秒的计算延迟。看-X和-Y获取控制计算延迟的其他参数 |
-l # | 设置程序最小进程数。在测试过程允许用户设置的最小进程或线程数。需要配合-u选项使用。 |
-L # | 设置处理器交换信息的单位量为#(bytes)。可以加速测试。 |
-m | iozone将在内部使用多个缓存。一些程序反复复写一块缓存,还有就是设置多个缓存块。此参数将允许使用这两种模式。iozone默认行为是重复使用内部一个缓存。此选项将允许在内部使用多个缓存块。 |
-M | 调用uname(),将返回字符串放在输出文件中 |
-n # | 设置自动模式下测试文件的最小值 |
-N | 报告结果以毫秒每操作的方式显示 |
-o | 写方式是同步写到磁盘上 |
-O | 报告结果以操作每秒方式显示 |
-q # | 在自动模式下设置记录块的最大值,可以使用#k(kb),#m(mb),#g(gb)。使用-y可以设置最小值 |
-r # | 设置记录块大小为# |
-R | 使用Excel显示结果 |
-s # | 设置测试文件大小 |
-S # | 设置处理器的缓存大小 |
-t # | 设置测试程序的线程或进程数 |
-T | 使用POSIX的pthreads进行测试 |
-u # | 设置最大进程或线程数,需要配合-l参数使用 |
-U mountpoint | 在测试开始之前,iozone将unmount和remount挂载点。这将保证测试中缓存不包含任何文件 |
-w | 在测试结束后不要删除临时文件。临时文件将在测试过后保存下来 |
-W | 在测试过程中,当读或写文件时锁住文件 |
-y # | 设置记录块最小值 |
-z | 同-a一起使用,进行全部测试 |
-Z | 允许mmap I/O和file I/O混合使用 |
实例
1 |
sudo iozone -ac -s 8m -f /home/testfile -y 2k -q 8m |
1 |
Time Resolution = 0.000001 seconds. |
结果: 左边第一列是测试文件大小,第二列是记录块大小(单位是kb),以后每列就是测试模式(单位是kb/s)
测试项
测试项 | 说明 |
---|---|
Write | 测试向一个新文件写入的性能。当一个新文件被写入时,不仅仅是那些文件中的数据需要被存储,还包括那些用于定位数据存储在存储介质的具体位置的额外信息。这些额外信息被称作“元数据”。它包括目录信息,所分配的空间和一些与该文件有关但又并非该文件所含数据的其他数据。拜这些额外信息所赐,Write的性能通常会比Re-write的性能低。 |
Re-write | 测试向一个已存在的文件写入的性能。当一个已存在的文件被写入时,所需工作量较少,因为此时元数据已经存在。Re-write的性能通常比Write的性能高。 |
Read | 测试读一个已存在的文件的性能。 |
Re-Read | 测试读一个最近读过的文件的性能。Re-Read性能会高些,因为操作系统通常会缓存最近读过的文件数据。这个缓存可以被用于读以提高性能。 |
Random Read | 测试读一个文件中的随机偏移量的性能。许多因素可能影响这种情况下的系统性能,例如:操作系统缓存的大小,磁盘数量,寻道延迟和其他。 |
Random Write | 测试写一个文件中的随机偏移量的性能。同样,许多因素可能影响这种情况下的系统性能,例如:操作系统缓存的大小,磁盘数量,寻道延迟和其他。 |
Random Mix | 测试读写一个文件中的随机偏移量的性能。同样,许多因素可能影响这种情况下的系统性能,例如:操作系统缓存的大小,磁盘数量,寻道延迟和其他。这个测试只有在吞吐量测试模式下才能进行。每个线程/进程运行读或写测试。这种分布式读/写测试是基于round robin 模式的。最好使用多于一个线程/进程执行此测试。 |
Backwards Read | 测试使用倒序读一个文件的性能。这种读文件方法可能看起来很可笑,事实上,有些应用确实这么干。MSC Nastran是一个使用倒序读文件的应用程序的一个例子。它所读的文件都十分大(大小从G级别到T级别)。尽管许多操作系统使用一些特殊实现来优化顺序读文件的速度,很少有操作系统注意到并增强倒序读文件的性能。 |
Record Rewrite | 测试写与覆盖写一个文件中的特定块的性能。这个块可能会发生一些很有趣的事。如果这个块足够小(比CPU数据缓存小),测出来的性能将会非常高。如果比CPU数据缓存大而比TLB小,测出来的是另一个阶段的性能。如果比此二者都大,但比操作系统缓存小,得到的性能又是一个阶段。若大到超过操作系统缓存,又是另一番结果。 |
Strided Read | 测试跳跃读一个文件的性能。举例如下:在0偏移量处读4Kbytes,然后间隔200Kbytes,读4Kbytes,再间隔200Kbytes,如此反复。此时的模式是读4Kbytes,间隔200Kbytes并重复这个模式。这又是一个典型的应用行为,文件中使用了数据结构并且访问这个数据结构的特定区域的应用程序常常这样做。许多操作系统并没注意到这种行为或者针对这种类型的访问做一些优化。同样,这种访问行为也可能导致一些有趣的性能异常。一个例子是在一个数据片化的文件系统里,应用程序的跳跃导致某一个特定的磁盘成为性能瓶颈。 |
Fwrite | 测试调用库函数fwrite()来写文件的性能。这是一个执行缓存与阻塞写操作的库例程。缓存在用户空间之内。如果一个应用程序想要写很小的传输块,fwrite()函数中的缓存与阻塞I/O功能能通过减少实际操作系统调用并在操作系统调用时增加传输块的大小来增强应用程序的性能。这个测试是写一个新文件,所以元数据的写入也是要的。 |
Frewrite | 测试调用库函数fwrite()来写文件的性能。这是一个执行缓存与阻塞写操作的库例程。缓存在用户空间之内。如果一个应用程序想要写很小的传输块,fwrite()函数中的缓存与阻塞I/O功能能通过减少实际操作系统调用并在操作系统调用时增加传输块的大小来增强应用程序的性能。 |
导出Excel表格
1 |
iozone -i 0 -i 1 -s 8m -f /testfile -y 2k -q 8m -Rab /iozone_test.xls |
在嵌入式开发板上导出表格数据全为0,无法使用
测试
1 |
./iozone -s 100M -ac -S 512k 2>&1 | tee test.log |
文件系统性能测试--iozone的更多相关文章
- Linux服务器iops性能测试-iozone
1. 选用工具: iozone 下载地址:http://www.iozone.org/ (直接下载rpm包) 2. 工具安装: 执行命令: rpm -ivh iozone-3-40 ...
- benchmarks (主要用于分布式文件系统性能测试)
最近进行学习过程中,遇到一些可以用得上的benchmark,在这里进行简要记录:之后估计会用到 TensorFlow benchmarks https://github.com/tensorflow/ ...
- iozone - a filesystem benchmark tool 主要是用来测试文件系统 性能
简介: 磁盘设备之上是文件系统,测试磁盘的工具往往就是调用块设备驱动的接口进行读写测试.而文件系统的测试软件就是针对文件系统层提供的功能进行测试,包括文件的打开关闭速度以及顺序读写随机位置读写的 ...
- Linux日志文件系统(EXT4、XFS、JFS)及性能分析
Ext4 ReiserFS Btrfs 等七种文件系统性能比拼 自上一篇<Ext2 v.s. Ext3 v.s. Ext4 性能比拼> 发布以来,社会各界纷纷来电来函,给出了“Ext4 我 ...
- 13款Linux运维比较实用的工具
本文介绍几款Linux运维比较实用的工具,希望对Linux管理员有所帮助. 1.查看进程占用带宽情况-Nethogs Nethogs 是一个终端下的网络流量监控工具可以直观的显示每个进程占用的带宽. ...
- 13 款高逼格且实用的 Linux 运维必备工具
转载于民工哥技术之路 1. 查看进程占用带宽情况 - Nethogs Nethogs 是一个终端下的网络流量监控工具可以直观的显示每个进程占用的带宽. 下载:http://sourceforge.ne ...
- Ext4 ReiserFS Btrfs 等7种文件系统性能比拼
2009年02月04日 为了满足广大群众的热切需求,今天做了 Ext2.Ext3.Ext4.XFS.JFS.ReiserFS 和 Btrfs 的全面性能测试,对比结果如下: 本次测试所 ...
- Linux文件系统测试工具
一.文件系统测试工具简介 1.LTP 参考网站:http://oss.sgi.com/projects/ltp/ LTP(Linux Test Project)是由SGI和IBM联合发起的项目,提供一 ...
- IO测试工具 - 用于IO测试 ; linux benchmarks
IO测试工具,用于磁盘IO测试,下面进行使用列表进行记录: iozone fio dd ioping iotop iostat bonnie++ crystalDisk Atto as-ssd-ben ...
随机推荐
- PAT 天梯赛 是否同一棵二叉搜索树 (25分)(二叉搜索树 指针)
给定一个插入序列就可以唯一确定一棵二叉搜索树.然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到.例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果 ...
- windows 下python导入excel
1.安装相应包 2.导入代码
- Objective-C和Swift混合编程开发
创建混编的Framework工程 第一步:创建target为Framework的工程 打开Xcode6-Beta,菜单栏File—>New—>Project; 创建一个新的工程,工程模板选 ...
- HDU 2546:饭卡(01背包)
饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- http状态码301和302详解及区别——辛酸的探索之路(文章源自:http://blog.csdn.net/grandPang/article/details/47448395)
一直对http状态码301和302的理解比较模糊,在遇到实际的问题和翻阅各种资料了解后,算是有了一定的理解.这里记录下,希望能有新的认识.大家也共勉. 官方的比较简洁的说明: 301 redirect ...
- 【mysql】mac上基于tar.gz包安装mysql服务
一.准备工作 (1)下载mysql-5.7.21-macos10.13-x86_64.tar.gz,并将该压缩包移动至/usr/local目录下 (2)解压压缩包 二.安装 (1)将解压的包重命名为m ...
- pandas 基础用法
pandas 是一个基于 Numpy 构建, 强大的数据分析工具包 主要功能 独特的数据结构 DataFrame, Series 集成时间序列功能 提供丰富的数学运算操作 灵活处理缺失数据 Serie ...
- 如何快速配好java环境变量和查看电脑上安装JDK的版本位数
今天一个新手在群里问自己的Eclipse打不开,然后我是属于那种热心肠的人,一般自己知道的就会告诉他们,看了下,是环境变量没有配好,反正我觉得配环境比较简单,现在就教大家简单的环境变量配法 path ...
- 【转】每天一个linux命令(26):用SecureCRT来上传和下载文件
原文网址:http://www.cnblogs.com/peida/archive/2012/11/28/2793181.html 用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接 ...
- php curl文件上传兼容php5.0~5.6各版本
PHP 5.0~5.6 各版本兼容的cURL文件上传 最近做的一个需求,使用PHP cURL上传文件.踩坑若干,整理如下. 不同版本PHP之间cURL的区别 PHP的cURL支持通过给CURL_POS ...