linux – 如何找出文件在磁盘上的物理位置(块号)?

我知道这是一个模糊的问题.我正在尝试对 Linux机器上的某些磁盘进行一些性能测试.我得到一些不一致的结果,在同一个磁盘上运行相同的测试.我知道磁盘具有不同的性能,具体取决于访问磁盘的哪个部分.特别是,由于几乎恒定的数据密度和恒定的旋转速度,对磁盘外部的读取和写入比读取和写入磁盘内部的吞吐量高得多.

我想看看我的不一致性是否可归因于这种几何引起的吞吐量变化.是否可以使用现有工具找出磁盘上放置文件的位置?

如果没有,我想我可以写一些东西直接寻找,读取和写入设备文件本身,绕过(并销毁)文件系统,但我希望避免这种情况.我目前在3.0内核上使用ext4(Arch Linux,如果它很重要),但我也对其他文件系统的技术感兴趣.

解决方法

你可以使用debugfs:
debugfs -R "stat ~/myfile" /dev/hda1

相应地更改硬盘/分区驱动器,并确保卸载驱动器.
您将获得一个包含所有使用块的列表:

BLOCKS:
(0):1643532
TOTAL: 1

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...