我想记录操作系统调用的磁盘访问活动。我要记录的这些数据是磁盘从操作系统接收的,包括磁盘扇区号、请求长度、到达时间、读或写。
具体来说,操作系统是linux,内核是3.xxx,磁盘文件系统是ext4。也许我需要修改 ext4 驱动程序来记录此类磁盘访问活动。
操作系统是 Intel i686 上的 Ubuntu 15.04 32 位。我正在做一项研究,想要获取桌面的 I/O 跟踪。
答案1
我不确定您是否可以从ext4
驱动程序中获取所有这些信息,因为它不负责磁盘扇区和其他磁盘几何结构,而是负责 Linux 内核中的块设备层子系统。我没有看到一种方法来获取您感兴趣的所有信息,因为据我所知,您对低级内容以及高级读/写操作都很感兴趣,但是看看块跟踪实用程序。
答案2
你的问题不清楚。如果您想要原始磁盘 I/O 分析(那么文件系统是无关紧要的,并且您还想测量交换磁盘 IO),您可能必须配置或修补内核(我不知道如何)。也许通过虚拟机管理程序(如xen
)运行 Linux 可能会有所帮助。也看看oprofile
另一方面,如果您对文件系统活动感兴趣,您可以使用inotify(7)。请注意,感谢页面缓存,文件系统活动与原始磁盘活动不同。