我使用ext4在Ubuntu 12.04上。我编写了一个python程序,它使用一些随机访问模式进行小尺寸(大多数为512字节)读写。我发现随着文件变得越来越大。执行相同数量的I / O需要花费越来越多的时间。这种关系是线性的。换句话说,我得到O(n 2 ),其中n是累计I / O数。
我想知道,随着文件大小的增加,小I / O的速度会有一个固有的原因。
还有一个观察:当我安装ramdisk并将我的文件I / O安装到ramdisk时,我没有观察到这种性能下降。
答案 0 :(得分:0)
取决于你是如何做IO的,你可能会在保存它之前尝试过多地调用内存。
答案 1 :(得分:0)
当你读取1024字节大文件中的512个字节时,整个文件都在缓存中。随着文件大小的增加,文件的较小部分位于缓存中,并且越来越频繁地从磁盘读取数据。即随着文件的增长,你会得到更多的缓存未命中。也许这就是你所经历的。