哪个 kjournald 进程属于哪个文件系统?

Flu*_*lup 5 linux ext3 kjournald

我知道每个挂载的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]
Run Code Online (Sandbox Code Playgroud)

如何确定哪个进程与哪个文件系统相关联?

Flu*_*lup 1

执行此操作的一种间接方法是使用blktrace及其便利命令btraceblktrace记录并显示发生的对磁盘的块级访问。 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
Run Code Online (Sandbox Code Playgroud)

此处显示的字段已记录在blkparse联机帮助页中;第五个字段是执行 I/O 的进程的 PID。因此,尽管我没有直接将kjournalds 与文件系统关联的方法,但我可以查看哪个进程与特定块设备关联,然后查看挂载表以查看涉及哪个文件系统。