我在其中购买了一张带有4个三星960PRO的Highpoint HBA卡。正如官方网站所说,这张卡可以写入7500MB / s,读取时可以达到13000MB / s。
当我在我的ubuntu中用fio测试这张卡时……
我会注意到的 fio 你指定的工作似乎有点缺陷:
fio
-direct = 1 -rw =写 - 的 ioengine =同步 强> -bs = 2k - 的 iodepth = 32 强>
(为了简单起见,我们假设破折号实际上是双倍的)
以上是要求尝试让同步发动机使用 iodepth 大于一。这通常是没有意义的 iodepth fio文档的一部分对此进行了警告 :
iodepth
的 iodepth 强> = INT 要对文件保持飞行的I / O单元数。注意 的 将iodepth增加到1以上不会影响 同步 ioengines 强> (当使用verify_async时,小度除外)。即使是异步 引擎可能会施加操作系统限制,导致不希望达到所需的深度 实现。 [强调补充]
的 iodepth 强> = INT
要对文件保持飞行的I / O单元数。注意 的 将iodepth增加到1以上不会影响 同步 ioengines 强> (当使用verify_async时,小度除外)。即使是异步 引擎可能会施加操作系统限制,导致不希望达到所需的深度 实现。 [强调补充]
您没有发布fio输出,因此我们无法判断您是否实现了大于1的iodepth。对于这样的工作来说,7.5GByte / s似乎很高,我不禁想到你的文件系统悄悄地去了,并在你的背后做了缓冲,但谁知道呢?我不能多说,因为你害怕fio运行的输出是不可用的。
还要注意 数据fio正在编写可能不是随机足以击败压缩 从而有助于实现人为的高I / O速度......
无论如何你的主要问题:
如何实现像fio一样高的磁盘写入速度?
您的示例显示您正在告诉fio使用 经常发动的发动机 write 电话 。考虑到这一点,理论上你应该能够通过以下方式达到类似的速度:
write
O_DIRECT
您可能会发现没有使用 O_DIRECT (因此允许缓冲I / O进行合并)如果由于某种原因您每次都无法提交“大”良好对齐的缓冲区,则会更好。