【发布时间】:2011-08-11 05:52:38
【问题描述】:
我的应用程序正在使用 O_DIRECT 将 2MB 的数据直接刷新到 3 路条带存储(安装为 lvm 卷)..
我在这个存储上的写入速度非常糟糕。 iostat 显示较大的请求大小正在被分解为较小的请求。
avgrq-sz 是
刷新 2MB 的连续内存块(使用 mlock 确保这一点)、扇区对齐(使用 posix_memalign)大约需要 2 秒,而使用 dd 和 iozone 的测试对存储能力进行评级> 20Mbps 的写入速度。
如果能提供任何有关如何进一步调查此问题的线索,我将不胜感激。
PS:如果这不是此查询的正确论坛,我希望能提供一些有用的指标。
谢谢。
【问题讨论】:
-
superuser.stackexchange.com;欢迎来到SO;我重新格式化了这个问题。它有助于很好地制定和提出问题
-
什么是文件系统驱动程序? (是保险丝吗?什么版本?) 20 Mbps in 3way stripe... 是用铅笔写的吗?我们在谈论什么样的媒体 - 看起来不像 sata 硬盘
-
我不同意那些投票结束这个问题的人。这家伙有一些 C 代码,他想提高写入性能。超级用户?请。高级用户不要打电话
posix_memalign或使用O_DIRECT,这很明显是一个编程问题。 -
。 @sehe 它是最新的带有 ext4 的 Ubuntu Server detro 之一,硬盘确实是 SATA。我将在星期一发布确切的统计数据。 @asveikau 是的,它是一个 C 代码,需要对驱动器进行大量顺序写入。如果任何特定的统计信息对调试有帮助,请告诉我,我会将这些统计信息放在这里
标签: linux performance linux-kernel iostat