• 磁盘性能测试工具 iozone


    iozone

    iozone是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能。可以测试 Read, write, re-read,re-write, read backwards, read strided, fread, fwrite, random read, pread, mmap, aio_read, aio_write 等等不同的模式下的硬盘的性能。

    官方站点

    源码包下载

    常用参数

    1. 自动测试参数
      -a 全自动模式测试。测试记录块大小从4k到16M,测试文件从64k到512M。
      -z 同-a一起使用,进行全部测试
      -A 使用自动模式虽然测试比较全面,但是比较花时间。-a选项将在文件大于32MB时停止使用低于64k一下记录块,来节省时间。-A通知iozone不要节省时间,进行所有测试。注:在3.61版本以后不建议使用,用-az代替-aA。

      -n # 设置自动模式下测试文件最小值。
      -g # 设置自动模式下测试文件最大值,可以使用#k #m #g分别表示kb,mb,gb。

      -y # 在自动模式下设置记录块的最小值
      -q # 在自动模式下设置记录块的最大值,可以使用#k(kb),#m(mb),#g(gb)。使用-y可以设置最小值。

    2. mmap
      -B 使用mmap()。这将使用mmap()接口来创建并访问所有测试用的临时文件。一些应用程序倾向于将文件当作内存的一块来看待。这些应用程序对文件执行mmap()调用,然后就可以以读写内存的方式访问那个块来完成文件I/O。
      -D 对mmap文件使用MSYNC(MS_ASYNC)。告诉操作系统在mmap空间的所有数据需要被异步的写到磁盘上。
      -G 对mmap文件使用msync(MS_SYNC)。告诉操作系统在mmap空间的所有数据需要被同步的写到磁盘上。
      -Z 允许mmap I/O和file I/O混合使用

    3. 测试报告 -Rb xx.xls
      -b iozone将会创建一个兼容于Excel的结果输出文件,这个文件是二进制文件格式的。
      -N 报告结果以毫秒每操作的方式显示。
      -O 报告结果以操作每秒方式显示。
      -R 使用Excel显示结果。

    4. 测试时间尺度
      -c 计算时间将close()包括进来。使用close()将减少NFS客户端缓存的影响NFS
      -e 测试时间是包含flush(fsync, fflush)。

    5. 文件
      -f filename
      指定用来测试临时文件,在测试完成后将被自动删除。
      -F filename filename ...
      指定测试中每个临时文件名,文件名的数量应该和指定的进程或线程数相同。-l -u
      -r # 设置记录块大小为#。可以通过-r #k (Kbytes) 或 -r #m (Mbytes) 或 -r #g (Gbytes).
      -s # 设置测试文件大小。
      -S # 设置处理器的缓存大小。
      -p 测试前清除处理器缓存
      -w 在测试结束后不要删除临时文件。临时文件将在测试过后保存下来
      -W 在测试过程中,当读或写文件时锁住文件

    6. 测试模式
      -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。通知文件系统所有操作跳过缓存直接在磁盘上操作。
      -o 写方式是同步写到磁盘上。

      -j # 设置访问文件的跨度为(# * 块)。stride read测试将使用这个跨度来读块。
      -J #(毫秒)在每个I/O操作之前产生指定毫秒的计算延迟。看-X和-Y获取控制计算延迟的其他参数。

      进程和线程
      -l # 设置程序最小进程数。在测试过程允许用户设置的最小进程或线程数。需要配合-u选项使用。
      -u # 设置最大进程或线程数,需要配合-l参数使用。

      -t # 设置测试程序的线程或进程数。
      -T 使用POSIX的pthreads进行测试。

    7. 其他
      -C 显示吞吐量测试中每个客户端的字节数。
      -L # 设置处理器交换信息的单位量为#(bytes)。可以加速测试。
      -m iozone将在内部使用多个缓存。一些程序反复复写一块缓存,还有就是设置多个缓存块。此参数将允许使用这两种模式。iozone默认行为是重复使用内部一个缓存。此选项将允许在内部使用多个缓存块。
      -M 调用uname(),将返回字符串放在输出文件中。
      -U mountpoint 在测试开始之前,iozone将unmount和remount挂载点。这将保证测试中缓存不包含任何文件

    IOZone使用教程(文件系统性能)

    https://www.cnblogs.com/bugutian/p/5785058.html

  • 相关阅读:
    JAVA SkipList 跳表 的原理和使用例子
    TreeMap、HashMap、ConcurrentSkipListMap之性能比较
    CompletionService 和ExecutorService的区别和用法
    1. java.util.concurrent
    JAVA Concurrent包 中的并发集合类
    并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
    Objective-C中 ==、isEqual、isEqualToString判断字符串相等
    设置UIButton的文字显示位置、字体的大小、字体的颜色
    9个完整android开源app项目
    android 开源项目集合
  • 原文地址:https://www.cnblogs.com/hiyang/p/13524983.html
Copyright © 2020-2023  润新知