特定进程的iotop

Raj*_*123 5 linux io

跑步时

sudo iotop --only
Run Code Online (Sandbox Code Playgroud)

我得到所有执行 IO 的进程。我想接收特定进程的统计信息。当我跑

sudo iotop --only -p pid
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

CONFIG_TASK_DELAY_ACCT not enabled in kernel, cannot determine SWAPIN and IO %
Run Code Online (Sandbox Code Playgroud)

我怎样才能消除那个错误?

小智 0

我正在使用 Red Hat Enterprise Linux Server 版本 7.9 (Maipo) 和 iotop 0.6。

当对某些 pid 运行 iotop -p 时,例如我的 java tomcat 进程,我看到:

   ... SWAPIN     IO>   ...

   ... ?unavailable?    ...

   ...
Run Code Online (Sandbox Code Playgroud)

CONFIG_TASK_DELAY_ACCT 未在内核中启用,无法确定 SWAPIN 和 IO %

对于其他 pid 来说,它工作正常。

对于有问题的 pid,如果我运行:

    iotop -b -n 100 -P | grep ^pid
Run Code Online (Sandbox Code Playgroud)

以批处理模式运行 iotop 然后我看到:

   ... 0.00 %  0.00 % ...
Run Code Online (Sandbox Code Playgroud)

而不是“不可用”。因此,iotop -b 方法可能是一种解决方法。我还没有看到除 0.00 % 之外的任何值,因此我无法确定这是否显示真实值。

Red Hat 页面https://access.redhat.com/solutions/3726051报告了一个错误,指出如果使用无效的 pid 或“该”内核 pid,则会错误地显示错误消息。