命令time -v
输出% CPU 利用率对于 Linux 上的给定命令。如何在 OS X 上执行此操作? Linux/OS X 的区别如图所示这里。我想测量短期运行程序的整个执行期间的多核利用率,因此top
可能行不通,因为它在特定时间点进行测量/平均值。
答案1
您可以安装 sysstat 软件包并使用 sar 命令。(https://tipstricks.itmatrix.eu/installing-sar-monitoring-tools/)
所有 CPU 的 CPU 使用率 (sar -u)
这给出了所有CPU的累积实时CPU使用率。 “1 3”每1秒报告3次。您很可能会关注最后一个字段“%idle”来查看 CPU 负载。
$ sar -u 1 3
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:27:32 PM CPU %user %nice %system %iowait %steal %idle
01:27:33 PM all 0.00 0.00 0.00 0.00 0.00 100.00
01:27:34 PM all 0.25 0.00 0.25 0.00 0.00 99.50
01:27:35 PM all 0.75 0.00 0.25 0.00 0.00 99.00
Average: all 0.33 0.00 0.17 0.00 0.00 99.50
以下是一些变化:
sar -u Displays CPU usage for the current day that was collected until that point.
sar -u 1 3 Displays real time CPU usage every 1 second for 3 times.
sar -u ALL Same as “sar -u” but displays additional fields.
sar -u ALL 1 3 Same as “sar -u 1 3″ but displays additional fields.
sar -u -f /var/log/sa/sa10 Displays CPU usage for the 10day of the month from the sa10 file.
单个 CPU 或核心的 CPU 使用率 (sar -P)
如果您的计算机上有 4 个核心,并且想查看各个核心正在做什么,请执行以下操作。
“-P ALL” 表示它应该显示所有单独核心的统计信息。
在下面的示例中,“CPU”栏下的 0、1、2 和 3 表示相应的 CPU 核心编号。
$ sar -P ALL 1 1
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:34:12 PM CPU %user %nice %system %iowait %steal %idle
01:34:13 PM all 11.69 0.00 4.71 0.69 0.00 82.90
01:34:13 PM 0 35.00 0.00 6.00 0.00 0.00 59.00
01:34:13 PM 1 22.00 0.00 5.00 0.00 0.00 73.00
01:34:13 PM 2 3.00 0.00 1.00 0.00 0.00 96.00
01:34:13 PM 3 0.00 0.00 0.00 0.00 0.00 100.00
“-P 1”表示仅显示第二个核心的统计信息。 (注意Core编号是从0开始的)。
$ sar -P 1 1 1
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:36:25 PM CPU %user %nice %system %iowait %steal %idle
01:36:26 PM 1 8.08 0.00 2.02 1.01 0.00 88.89
以下是一些变化:
sar -P ALL Displays CPU usage broken down by all cores for the current day.
sar -P ALL 1 3 Displays real time CPU usage for ALL cores every 1 second for 3 times (broken down by all cores).
sar -P 1 Displays CPU usage for core number 1 for the current day.
sar -P 1 1 3 Displays real time CPU usage for core number 1, every 1 second for 3 times.
sar -P ALL -f /var/log/sa/sa10 Displays CPU usage broken down by all cores for the 10day day of the month from sa10 file.
答案2
似乎 gnu 命令没有真正的替代品time
。所以,最后我就安装了这个。在 OS X 上,gnu-time 可以使用 homebrew 安装:brew install gnu-time
。此后,可以使用 来测量特定命令的 CPU 利用率gtime <command>
。测试表明我的程序确实是并发运行的:1.73user 0.13system 0:01.61elapsed 115%CPU
。