0

我在使用 ext4 的 Ubuntu 12.04 上。我编写了一个 python 程序,它以某种随机访问模式进行小尺寸(主要是 512 字节)读写。我发现随着文件越来越大。执行相同数量的 I/O 需要越来越多的时间。关系是线性的。换句话说,我得到 O(n 2 ),其中 n 是 I/O 的累积数量。

我想知道随着文件大小的增加,小 I/O 是否有内在的原因。

另一个观察结果:当我安装一个 ramdisk 并对 ramdisk 执行文件 I/O 时,我没有观察到这种性能下降。

4

2 回答 2

0

当您从 1024 字节的大文件中读取 512 字节时,整个文件都在缓存中。随着文件大小的增长,文件中的较小部分在缓存中,并且从磁盘读取数据的频率越来越高。即随着文件的增长,您会获得更多的缓存未命中。也许这就是你正在经历的。

于 2012-05-10T13:26:24.913 回答
0

根据您执行 IO 的方式,可能是您在保存之前尝试调用太多内存。

于 2012-05-10T10:00:36.057 回答