使用ext4

时间:2015-11-26 03:40:59

标签: c linux filesystems disk ext4

我正在努力比较ext4和NTFS在不同文件操作上的性能。作为同样的一部分,我使用C对非常小的文件(几个字节)进行基准测试。由于这些小文件存储在Windows上的MFT中,但在ext4上有自己的磁盘块,因此特别感兴趣。所以我应该能够观察到NTFS上的这些文件的读取时间与ext4之间的显着差异。测试是在一组100个文件中,每个文件4个字节。我衡量每个文件的read时间。

然而,阅读时间的图表显示了我无法解释的模式。这是4个图表:

enter image description here

enter image description here

第一张图是通过在读取每个文件之前运行echo 1 > /proc/sys/vm/drop_caches生成的,第二个是echo 2 > /proc/sys/vm/drop_caches,第三个是echo 3 > /proc/sys/vm/drop_caches,第四个是没有释放任何缓存。对于第二和第三种情况,为什么时间会上下变化?时间不应该在相同的吞吐量范围内吗?

我的第一个近似值是,由于这些文件非常小,因此很多文件存储在一个块中,因此可以在单个块读取中读取多个文件。虽然我肯定不确定这是否正确。是否有可能对整个文件进行某种预取(虽然我认为这不是一件好事)?我还想过使用debugfs检查这些文件的实际磁盘块,但我不确定逻辑块号是否与实际的磁盘块相对应。

0 个答案:

没有答案