Linux:为什么 init 和 systemd 使用如此多的 I/O?

Linux:为什么 init 和 systemd 使用如此多的 I/O?

这恐怕是无解的。但也许其他人会遇到这个问题并找到这个问题,附加到它,或者提供答案。

今天我发现了这个pidstat命令及其-d选项。显然,在我的 RHEL6 系统上,init(暴发户)是一个重度 I/O 用户;在 RHEL7 系统上,systemd是 I/O 滥用者。为什么?系统启动后,这些进程会做什么?我检查了系统日志,没有看到任何正在重新生成进程的迹象。

# pidstat -d -p 1
Linux 2.6.32-358.el6.x86_64 (db05-a.intra.uibk.ac.at)   01/27/2016      _x86_64_        (8 CPU)

12:50:18 PM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
12:50:18 PM         1     23.76     66.67      0.77  init


# pidstat -d -C systemd
Linux 3.10.0-229.1.2.el7.x86_64 (dbmon01.uibk.ac.at)    01/27/2016      _x86_64_        (4 CPU)

12:50:59 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
12:50:59 PM     0         1     10.82    220.18      3.01  systemd
12:50:59 PM     0       503      0.00      0.00      0.00  systemd-journal
12:50:59 PM     0       527      0.00      0.00      0.00  systemd-udevd
12:50:59 PM     0       730      0.00      0.00      0.00  systemd-logind

正如 @sourcejedi 和一位同事建议的那样:使用 strace 附加到进程。他们只是在套接字上监听。systemd我做的事情比这多一点,但阅读水平非常低。可能几天前,每个系统上都“发生了”一些事情,但只留下了这些痕迹。

相关内容