据我所知,每个安装的ext3文件系统都会运行相应的kjournald进程.其中一个进程是使用大量的cpu,我想知道哪个文件系统负责.
root 325 2 0 Sep23 ? 00:30:12 [kjournald] root 7433 2 0 Sep23 ? 00:00:00 [kjournald] root 7434 2 0 Sep23 ? 00:09:47 [kjournald]
如何确定哪个进程与哪个文件系统相关联?
解决方法
间接的方法是使用blktrace及其便捷命令btrace. blktrace记录并显示磁盘的块级访问. btrace意味着你不必记住blktrace的所有选项.
# btrace /dev/sda1 | grep kjournald 8,1 5 1 0.000201850 325 Q WS 451573976 + 8 [kjournald] 8,1 5 2 0.000393849 325 Q WS 976637584 + 8 [kjournald] 8,1 5 3 0.000398641 325 Q WS 976637592 + 8 [kjournald] 8,1 5 4 0.000401003 325 Q WS 976637600 + 8 [kjournald] 8,1 5 5 0.000404179 325 Q WS 976637608 + 8 [kjournald] 8,1 5 6 0.000407446 325 Q WS 976637616 + 8 [kjournald] ^^^ pid of kjournald for /dev/sda1
此处显示的字段记录在blkparse联机帮助页中;第五个字段是执行I / O的进程的PID.因此,虽然我没有办法直接将kjournalds与文件系统相关联,但我可以看到哪个进程与特定的块设备相关联,然后查看mount表以查看涉及哪个文件系统.