如何测量Linux进程的平均CPU利用率如何测量Linux进程的平均CPU利用率如何测量Linux进程的平均CPU利用率如何测量Linux进程的平均CPU利用率
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何测量Linux进程的平均CPU利用率

有时您可能想了解特定 Linux 进程的 CPU 使用情况。由于进程的 CPU 使用率在其生命周期内可能会波动,因此您需要测量该进程的平均 CPU 使用率或 CPU 利用率。为此,名为 sysstat 的 Linux 工具集可能会派上用场,它包含 Linux 性能监控工具的集合,报告磁盘 I/O、CPU、内存、网络和其他系统活动的统计信息。 sysstat 中包含的实用程序之一是 pidstat,它可以测量 Linux 进程的平均 CPU 使用率。

下面让我们了解如何使用 pidstat 工具测量特定 Linux 进程的平均 CPU 使用率,或所有可用 Linux 进程的进程级 CPU 使用率。

在 Linux 上安装 sysstat

为了使用pidstat,您需要安装sysstat软件包,如下所示。

在 Ubuntu、Debian 或 Linux Mint 上安装 sysstat

$ sudo apt install sysstat

在 CentOS、RHEL 或 Fedora 上安装 sysstat

$ sudo yum install sysstat

从源代码构建 sysstat

如果 sysstat 软件包在您的 Linux 系统上不可用,您可以轻松地从源代码构建它,如下所示。


$ tar -xf sysstat-12.5.3.tar.gz
$ cd sysstat-12.5.3/
$ ./configure
$ make
$ sudo make install

使用 pidstat 测量进程的平均 CPU 使用率

安装 sysstat 后,您可以使用 pidstat 来测量 Linux 进程的平均 CPU 使用率,如下所示。

$ pidstat 5 -p 11579

在此示例中,我测量了 PID 11579 的 Linux 进程的平均 CPU 使用率,这是在五秒间隔内测量的。该命令将每五秒刷新一次平均 CPU 使用率。如果按 Ctrl-C,该命令将退出并打印总体平均 CPU 使用率。输出表明该进程平均消耗单个 CPU 核心的 5.5%。 %CPU 旁边的 CPU 字段表示进程所附加的 CPU 处理器 ID(如果系统上有多个 CPU 处理器)。 %usr 和 %system 列分别指示有多少 CPU 是在用户空间或内核中执行的。

请注意,您需要提供 interval 参数(例如 5),该参数指定每个报告之间的时间间隔(以秒为单位)。如果没有间隔参数,pidstat 报告的%CPU 将是自系统启动(引导)以来一段时间内的平均 CPU 使用率。

使用 pidstat 测量系统上进程级 CPU 使用率

如果您想测量所有正在运行的进程的进程级 CPU 使用情况,只需将 -p ALL 选项与 pidstate 结合使用即可。


$ pidstat 60 -p ALL

上面的命令将每分钟报告所有正在运行的进程的平均 CPU 使用情况。

如果要将 pidstat 的输出提供给 shell 脚本,可以使用以下 bash 脚本。该脚本测量整个系统的进程级平均 CPU 使用率(一分钟内的平均值)。


#!/bin/bash
output=$(timeout 60.1 pidstat 60 -p ALL)
IFS='
'
for line in $output; do
    # extract N-th column with awk
    pid=`echo $line | awk '{ print $4}'`    # PID
    pcpu=`echo $line | awk '{ print $9}'`   # percentage CPU
    cpu=`echo $line | awk '{ print $10}'`   # CPU ID
    cmd=`echo $line | awk '{ print $11}'`   # command
    echo "$pid $pcpu $cpu $cmd"
done

如果您发现本教程有用,请随时在社交网络上与您的朋友分享。

©2015-2025 艾丽卡 support@alaica.com