文件系统性能测试:使用iozone

简介: 以前用iozone简单测了下ext3及dnfs的性能,用磁盘测试工具测了一下硬盘的性能。前者在http://blog.chinaunix.net/u2/87570/showart_1944522.html【A】中做了分析;后者在http://blog.chinaunix.net/u2/87570/showart_2191188.html【B】中做了分析。

以前用iozone简单测了下ext3dnfs的性能,用磁盘测试工具测了一下硬盘的性能。前者在http://blog.chinaunix.net/u2/87570/showart_1944522.htmlA】中做了分析;后者在http://blog.chinaunix.net/u2/87570/showart_2191188.htmlB】中做了分析。

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

A中的数据当时让我很吃惊,为什么读写的速度能达到GB级呢,B中显示磁盘的裸盘读写速率也只能达到100MB/S呢,难道读写没有通过磁盘? 仔细分析测试命令:

iozone -i 0 -i 1 -Rab /root/test-iozone.xls -g 16M -n 1M

测试write/rewrite, read/reread的性能,最大测试文件16M, 最小测试文件1M.

1.       由于linux页高速缓存机制即延迟写机制,写文件时数据先写入高速缓存,在内存不足或是一定时间之后会被刷新到磁盘。

2.       读文件时,先检查文件数据是否在高速缓存中,如果在则直接从缓存中读取;否则从磁盘读取至高速缓存。

3.       被测试文件大小最大为16M,而我linux所跑机器的内存为1G

 

综合以上三点:

1,  写测试文件时,由于文件小,内存足够,不存在数据刷新到硬盘的操作,数据被写到页高速缓存即返回;

2,  读测试文件时,由于数据已在高速缓存,亦可直接返回;

故读写效率相当高,根本没经过磁盘一级,显示了VFS处理读写请求的能力。

 

那么如何测试读写请求到硬盘处理的整个过程的处理速度呢?由于当时没有详细读iozone的文档,就想着提高测试文件的大小,减小系统使用的内存,这样当写入时,大部分数据都会被刷新到硬盘,从而近似于整个文件从请求到全部写到磁盘的时间。

通过如下测试:

iozone -i 0 -i 1 -Rb /root/test-iozone.xls  -s 1g –q 4k

读写的平均速率在60-70MB/S左右。

 

近日,在一篇关于iSCSI性能测试的文章中发现,iozone能测试direct io,并且能清除cpu cache的影响,分别通过指定-p, -I实现。

通过如下测试:

iozone -i 0 -i 1 –Rb –p -I /root/test-iozone.xls  -s 16m –q 4k

读写的平均速率只在20-30MB/S

 

 

iozone使用:

100315171835.png

 

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

常用参数解释:

-a  auto mode产生文件大小16K-512M,记录大小4K-16M的输出结果;

-e  计算时间时算上fflushfsync的时间;

-f  指定临时测试文件;

-s  指定测试文件大小;

-r  指定测试记录大小;

-g –n 指定auto模式下,最大/小测试文件大小;

-q –y 指定auto模式下,最大/小测试记录大小;

-i  指定特定的测试操作:

     (0=write/rewrite, 1=read/re-read, 2=random-read/write

3=Read-backwards, 4=Re-write-record, 5=stride-read, 6=fwrite/re-fwrite, 7=fread/Re-fread,

8=random mix, 9=pwrite/Re-pwrite, 10=pread/Re-pread, 11=pwritev/Re-pwritev, 12=preadv/Repreadv

-I  指定direct io操作;

-p  清除cpu cache影响;

-O  输出IOPS值;

-R  生成excel报告文件;

-W  读写之前锁定文件;

 

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
测试技术
iozone如何进行分布式性能测试
iozone的一个特性就是可以进行分布式测试,对分布式存储系统进行测试
441 0
|
Linux 测试技术
软件测试Linux面试题:简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
软件测试Linux面试题:简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
131 0
|
Shell Linux
linux shell之通过标识测试文件系统属性
linux shell之通过标识测试文件系统属性
117 0
|
存储 网络协议 测试技术
|
测试技术 人工智能 缓存
|
监控 Shell 测试技术