如何提高i / o吞吐量以便在linux中更快地读取?

时间:2012-07-09 05:46:27

标签: linux linux-kernel linux-device-driver

我有一个从stdin读取的C程序。我将使用dd命令在linux上测试我的程序到2GB数据(4KB读取缓冲区)。

我在3.20GHz机器上得到565MB / s。我在300MHz的机器上得分较小。是否有任何技巧可以最大化输入速度。我已经阅读了一些proc条目,但可以得到任何帮助。 (是否可以最大化内核io缓冲区大小以提高速度?) 请尽快回复。

这个领域的初学者。

2 个答案:

答案 0 :(得分:1)

如果您的2GB输入在磁盘上是连续块,您可以尝试为内核设置fadvise。这将使Linux内核的预取窗口更大。

请注意,只有在访问硬盘时才会有所帮助。

答案 1 :(得分:0)

增加读缓冲区(目前为4K)将有助于加快速度。没有其他相关的可调参数可以始终如一地帮助您。减少上下文切换和更大批量的工作应该是您的关键方法。