将内核的 CPU 使用率和进程的 RAM/CPU 使用率写入 OS X 中的日志文件

将内核的 CPU 使用率和进程的 RAM/CPU 使用率写入 OS X 中的日志文件

我正在编写一个脚本,该脚本每小时在 cronjob 上将内存和 CPU 使用情况写入日志文件。日志文件将如下所示:

“/n====核心的 CPU 使用率====”

Core0:已使用 59.05%

核心1:已使用 57.68%

“/n====进程的 RAM/CPU 使用情况====”

PID | 使用的 RAM (KB) | 使用的 CPU 百分比 | COMM | 用户

01 | 00003352 | 0.15%| /sbin/launchd | 根
11 | 00009220 | 0.65%| /usr/libexec/Use | 根
12 | 00005504 | 7.81%| /usr/libexec/kex | 根

它很可能会使用一个命令来表示核心的 CPU 使用情况,使用另一个命令来表示进程的 RAM/CPU 使用情况,但我可以对两者使用一个命令,或者总共使用两个以上的命令。

以下命令显示了我需要的部分或全部数据,但不幸的是它们不是解决方案:

  • top与 Linux 不同,OS X 上没有-b命令。这意味着它会自动刷新,因此不适合写入日志文件。获取每个 CPU / 核心的使用率百分比的命令?

  • htop是一个交互式程序,不适合写入日志文件。而且它以 ASCII 条形图的形式显示核心的 CPU 使用率。获取每个 CPU / 核心的使用率百分比的命令?

  • ps可能会严重低估内存使用量,例如当页面共享或多个应用程序使用相同的动态链接库时。否则,我会使用ps -eo "pid rss pmem pcpu comm user"

  • mpstat不在 OS X 上并且不能通过 homebrew 使用。

让我的用户从命令行安装 homebrew 是可以接受的,但让他们从源代码构建并让他们手动将命令添加到 bash 是不可接受的。

此外,所有计时都需要在 cronjob 中完成,因此我不能使用自动刷新命令并在第一个循环后终止它们。

感谢您的帮助。 :)

相关内容