我知道这是一个晦涩的问题。我正在尝试对Linux机器上的某些磁盘进行性能测试。在同一磁盘上运行相同的测试时,结果不一致。我知道磁盘具有不同的性能,具体取决于正在访问磁盘的哪一部分。特别地,由于接近恒定的数据密度和恒定的旋转速度,对磁盘外部的读写比对磁盘内部的读写具有更高的吞吐量。
我想看看我的不一致是否可以归因于这种几何形状导致的吞吐量差异。是否可以使用现有工具找出文件在磁盘上的放置位置?
如果没有,我想我可以写一些东西来直接查找,读取和写入设备文件本身,从而绕过(并销毁)文件系统,但是我希望避免这种情况。我目前在3.0内核(Arch Linux,如果有关系)上使用ext4,但是我也对其他文件系统的技术感兴趣。
1
谁说文件放在一个地方?如果他们变得支离破碎(他们通常这样做),他们可能会全部结束。
—
Sirex
绝对。但他们仍然在某处 :-)在我的特定情况下,将文件写入到新创建的文件系统,他们很可能是(大部分)不分段。
—
瑞克·科希
你做不到 最好的选择是文件的LBA块号,它们不一定与指定的物理位置相对应(至少不是以您可以确定的方式,因为驱动器不会发布此映射)。也有其他事情,例如,块3-5可能被连续编号,但是可能已将4块重新分配到驱动器上的一个完全不同的位置,因为4处的原始扇区受到了物理损坏,等等。您无法获取该信息除非驱动器制造商愿意为您提供详细的地址规格,否则您将一直在寻找。
—
2014年