问题标签 [iozone]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2354 浏览

linux - IOzone输出中的“Min xfer”和“throughput”是什么意思

我是 IOzone 的新用户,当我使用以下命令运行 IOzone 时./iozone -i 0 -i 1 -t 2 -T,它​​会生成以下结果(部分):

我对“吞吐量”和“Min xfer”的含义感到困惑,有人可以帮助我吗?顺便说一句,为什么从孩子和父母看到的吞吐量不同?谢谢!

0 投票
1 回答
854 浏览

linux - Linux 上的只读文件系统基准测试软件

更新:iozone有一个选项-+E可以使用非 iozone 文件运行只读 FS 基准测试

我正在开发一个旨在制作 2 级缓存只读文件系统的项目,现在我需要测试它的性能。

我试过iozone了,但似乎即使使用-i 1它也会创建一个我无法支持的临时文件。

你能给我一些关于使用iozone测试只读FS的建议吗?我真的不熟悉

是否有任何基准软件可以测试只读 FS?

谢谢你们!

0 投票
1 回答
178 浏览

c - 文件系统基准测试工具如何测量时间?

我想测量特定系统调用的运行时间,例如,我想知道pread需要多少时间在 CPU 和 I/O 上。

我应该使用哪个功能?

现在我使用times,它可以工作。

gettimeofday是获取当前时间,那可能不只是计算特定进程的运行时间吧?

clock是返回这个程序到目前为止使用的 CPU 时间,这是否包括 I/O 时间?如果还有其他程序在运行,会不会影响这个功能的时间?我的意思是切换运行过程。

getrusage看起来很理想,但它也返回CPU特定过程的时间。

有谁知道像iozone这样的基准工具如何计算system calls时间?我已经阅读了它的代码,但仍然不知道。

0 投票
3 回答
2143 浏览

filesystems - reverse/stride/pread 和 pwrite 的典型应用用途是什么?

如果不耐烦,请跳到下面的“问题”标题。

语境

我从事 Unix(like) 系统管理和基础设施开发工作,但我认为我的问题由程序员回答得最好:o)

我想做的是学习如何使用 iozone 对文件系统(普通、卷管理、虚拟化、加密等)进行基准测试。作为练习,我在我的 slug ( http://www.nslu2-linux.org/ )中对用作系统磁盘的 USB pendrive 进行了基准测试,格式分别为 vfat、ntfs、ext3、ext4 和 xfs。该测试产生了一些令人惊讶的结果,这些结果发布在下面。然而,结果让我感到惊讶的原因很可能是因为我对 iozone 还很陌生,并不真正知道如何解释这些数字。因此,这篇文章。

在我的测试中,iozone 对 11 种不同的文件操作进行了基准测试,但仅针对一种记录大小(4k,与所有测试文件系统的块大小匹配)和一种文件大小 (512MB)。文件系统记录大小和文件大小的片面性当然会给测试带来一些偏差。无论如何,文件操作在下面列出,每个都有我自己的简短解释:

  • 初始写入:按顺序将新数据写入磁盘,常规文件使用
  • 重写:将新数据附加到现有的顺序、常规文件使用中
  • read:顺序读取数据,常规文件使用
  • 重新读取:顺序重新读取数据(缓冲测试,还是什么?)
  • 反向阅读:???
  • 大步阅读:???
  • 随机读取:非顺序读取,通常是数据库使用
  • 随机写入:非顺序写入,通常使用数据库
  • pread:读取某个位置的数据 - 用于索引数据库?
  • pwrite:在某个位置写入数据 - 用于索引数据库?
  • 混合工作量:(很明显)

其中一些操作看起来很简单。我猜初始写入、重写和读取都用于常规文件处理,包括让指针寻找直到到达某个块,顺序读取或写入(通常通过许多块),有时由于碎片而不得不向前跳跃一点文件。重读测试的唯一目标(我猜)是缓冲测试。同时,随机读/写是典型的数据库操作,其中指针必须在收集数据库记录的同一文件中从一个地方跳到另一个地方,例如在连接表时。

那么问题是什么?

到目前为止,一切都很好。我非常感谢对上述假设的任何更正,尽管它们似乎相当普遍。现在是真正的问题:你为什么要做反向阅读?什么是跨步阅读?有人告诉我,“位置”操作 pread 和 pwrite 用于索引数据库,但为什么不简单地将索引保存在内存中呢?或者这是实际发生的情况,然后一旦给定某个索引,pread 就可以方便地跳转到记录的确切位置?您还使用 pread/pwrite 做什么?

总而言之,到目前为止,我觉得我只能半途而废地解释我的 iozone 结果。我或多或少知道为什么随机操作中的高数字会为数据库提供良好的文件系统,但为什么我需要以相反的顺序读取文件,以及良好的跨步读取告诉我什么?这些操作的典型应用用途是什么?

奖金问题

既然问了,这里有一个额外的问题。作为给定文件系统的管理员,感激地从有洞察力的程序员那里学会了如何解释我的文件系统基准;) - 有人对如何对文件系统的实际使用进行分析有什么建议吗?试验文件系统记录(块)大小是微不足道的,虽然很耗时。关于给定文件系统中文件的大小和分布,“查找”是我的朋友。但是我该怎么做才能计算实际的文件系统调用,如 read()、pwrite() 等?

我也非常感谢任何关于其他资源对文件系统测试结果的影响的评论,例如处理器能力和 RAM 容量和速度的作用。例如,当我想在带有 266 MHz ARM Intel XScale 处理器和 32/8 MB SD/闪存?

具有建筑思维的文档?

因为我不喜欢重复自己太多,我也不喜欢问别人,所以,如果这些问题不能以简短的方式回答,我将非常感谢进一步文档的链接,重要的是不是它解释了上述文件操作的实际作用(我可以参考 API),但是该文档具有架构意识,也就是说,它解释了这些操作通常如何在现实生活中的应用程序中使用。

试验结果

正确的。我承诺了我相当不起眼的 USB pendrive 文件系统测试的结果。我的主要期望是写入结果通常很差(作为闪存驱动器,考虑到它的性质,通常具有比管理它的实际文件系统更大的块大小,这意味着要写入一个较小的更改相对大量的未更改数据必须重写),并且读取结果很好。事实证明,要点是:

  • vfat 在所有操作上都做得很好,除了有点晦涩(对我来说,无论如何)反向和跨步读取。我猜缺少功能消除了很多簿记。

  • ntfs 在重写(追加)和读取操作方面很糟糕,使其成为常规文件操作的糟糕候选者。它还很糟糕的预操作,使其成为索引数据库的糟糕候选者。

  • 令人惊讶的是,ext3 和 ext4,后者在所有操作上都略胜一筹,在初始写入、重写、读取、随机写入和 pwrite 操作方面表现不佳,这使得它们不适合常规文件使用以及频繁更新的数据库。但是,ext4 是随机读取和预读的大师,使其成为某种静态数据库的绝佳候选者(?)。ext3 和 ext4 在晦涩难懂的反向读取和跨步读取操作上得分都很高,不管这意味着什么。

  • 无与伦比的全面测试获胜者是 xfs,其唯一的弱点似乎是反向阅读。在初始写入、重写、读取、随机写入和 pwrite 方面,它是最好的,使其成为常规文件使用以及(强烈更新)数据库的绝佳候选者。在重读、随机阅读和预读方面,它是亚军,使其成为(有些静态的)数据库的良好候选者。它在跨步阅读方面也做得很好——不管这意味着什么!

欢迎对这些结果的解释发表任何评论!下面列出了数字(由于长度原因有所删减),一个 iozone 测试套件 pr。文件系统类型,均在标准 4GB Verbatim pendrive(橙色 ;))上进行测试,停靠在配备 N450 1.66Ghz Atom CPU 和 2GB DDR2 667 Mhz RAM 的三星 N105P 笔记本电脑上,运行 Linux 3.2.0-24 x86 内核使用加密交换(是的,我知道,我应该安装一个 64 位 Linux 并让交换保持清晰!)。

问候,托斯滕

PS。写完这篇文章后,我发现 Debian NSLU2 发行版显然不支持 xfs。不过,我的问题仍然存在!

--- vfat ---

--- ntfs ---

--- 分机 3 ---

--- 分机 ---

--- xfs ---

0 投票
1 回答
4631 浏览

linux - iozone 什么是记录大小/记录长度?

我们已经构建了 Windows 文件服务器,我想运行 iozone 来测试磁盘 I/O 性能,那么我应该运行什么样的测试以及我如何知道在 X 大小的文件下会得到多少 i/oi?还有什么是record size或者record lengh我在谷歌搜索时多次遇到这个词..

我现在正在运行以下测试,但我不知道如何阅读统计数据以及结果意味着什么。

0 投票
1 回答
550 浏览

benchmarking - 如何指定要使用 iozone 测试的路径?

我有一个具有 ufs 文件系统的 freebsd 安装。在 freebsd 中,我在 raidz1 中创建了一个 zpool。现在我想在 zfs 上执行 iozone 测试,但我无法理解如何在 zpool 而不是基本文件系统上指定 iozone 测试。

0 投票
2 回答
1134 浏览

linux - 使用 iozone 工具对 SD 卡进行基准测试

我正在尝试将已安装的 SD 卡的性能安装到我的板上,并且我正在使用 Iozone 工具来做到这一点,但我得到的结果是:

命令:

结果:

结果以千字节为单位,这意味着随机读取的速度为 300MB/s ?? 我的卡通常是 4 类,写入速度为 4 MB/s,读取速度与此值差别不大??

0 投票
0 回答
212 浏览

android - 为 Android 编译 IOzone 可执行文件

我正在尝试将 Iozone(位于此处)编译为适合在 Android 设备上使用的可执行文件。我使用 Android Studio遵循了这些指示。但是,当构建进入 externalNativeBuildDebug 时,它会失败并出现以下错误:

.c 文件中的大多数#include 语句都会发生这种情况。用make编译它时,我能够很好地编译它。我是否让这比需要的更难?

0 投票
1 回答
725 浏览

ubuntu - zfs ubuntu 18.04 上的 iozone 基准测试 - 错误:无法打开临时文件打开:无效参数

我正在使用 iozone 在 ubuntu 18.04 上测试 zfs 和其他文件系统

使用的命令行:

错误:

错误后该文件在那里:

我尝试将文件夹和 tmp 文件设置为 0777 并以 root 身份运行。所有都会导致相同的权限错误。

在 rootfs ssd 上运行良好(lvm 上的 ext4)