我知道每个挂载的ext3
文件系统都会有一个相应的kjournald
进程在运行。其中一个进程占用了大量的 CPU,我想知道哪个文件系统是罪魁祸首。
我安装了三个ext3
文件系统,但进程仅显示为
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]
我如何确定哪个进程与哪个文件系统相关联?
答案1
一种间接的方法是使用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。因此,尽管我无法直接将kjournald
s 与文件系统关联,但我可以查看哪个进程与特定块设备相关联,然后查看挂载表以查看涉及哪个文件系统。