以易于处理的格式获取有关系统负载的数据

以易于处理的格式获取有关系统负载的数据

我经常觉得需要对有关系统负载的数据进行一些计算。例如关于top显示的数据。可能iotophtop可能。

我想做的一些事情如下:

  1. 计算每个核心(或平均核心)10 秒内的平均、最大和最小 CPU 负载(分为用户时间、系统、空闲等,如顶部所示)。

  2. 每个进程超过 10 秒的计算机平均、最大和最小 CPU 时间。然后计算共享相同进程名称或组 ID 的每个进程的平均值、最大值和最小值。

  3. 计算所有 chromium 或 firefox 进程使用的驻留 RAM 总量,而不对共享内存区域进行两次计数。

  4. 计算几分钟内每个进程和每个接口的平均网络使用率和最大带宽。

我知道这一点,top并且ps正在从 获取它们的数据/proc,但是理解这些文件的语义并解析它们比我希望的更难:它需要一个正确的脚本/程序。我希望能够在 bash 中编写 for 循环来处理这些数据。

是否有任何简单且快速使用的系统负载数据抽象?

答案1

top 交互地使用 ncurses,因此输出流充满了光标移动。但是,它有一个 -b(批处理)选项,可以在每个时间间隔打印数据。所以你可以用 awk 解析它。如果您不需要所有进程(它需要所有进程,因为它在 -b 模式下没有窗口大小),则可以选择定制几乎所有输出。它也会为您进行间隔计时,因此您无需继续重新运行该过程。

相关内容