在 Linux 系统中获取 CPU 使用率有多种方法,可以通过命令行工具如 `top`, `htop`, `mpstat`, 以及通过读取 `/proc/stat` 文件。下面是几种常用的方法:

方法1: 使用 `top` 命令

`top` 是一个强大的实时系统监视工具:

linux获取cpu使用率  第1张

bash

top

在这个工具中查找 "%Cpu(s)" 部分。

要退出 top 的显示,你可以按 `q` 键。

方法2: 使用 `htop` 命令(需额外安装)

linux获取cpu使用率  第2张

如果你已经安装了 `htop`:

bash

htop

linux获取cpu使用率  第3张

与 top 相似,但界面更直观,更用户友好,也可以提供实时系统状态监控。

安装 htop(例如基于 Debian 的系统,使用 apt;基于 RPM 的系统,用 yum 或 dnf):

linux获取cpu使用率  第4张

`sudo aptget install htop` (对于 Debian/Ubuntu)

`sudo dnf install htop` 或 `sudo yum install htop` (对于 Fedora 和 RedHat 系列)

方法3: 使用 `mpstat`

首先确认已安装了 sysstat包 (通常包含 mpstat 工具),例如在Debian/Ubuntu:

bash

sudo aptget install sysstat

linux获取cpu使用率  第5张

然后:

bash

mpstat P ALL 1

linux获取cpu使用率  第6张

这个命令将显示所有 CPU 的详细性能,刷新周期为 1秒。

方法4:读取 `/proc/stat`(适用于程序开发和高级用户)

你也能直接从 `/proc/stat` 中获取原始CPU统计数据,它提供了最精细控制的可能性。这是一个文本文件,在其中你可以读取当前系统的CPU状态信息。

示例Python脚本获取总体CPU使用率的大概方式如下所示:

python

linux获取cpu使用率  第7张

def read_cpu():

with open("/proc/stat", "r") as file:

line = file.readline()

cpu_stat_info = line.split(" ")

linux获取cpu使用率  第8张

user, nice, system, idle, iowait, irq, softirq, steal = [

float(item) for item in cpu_stat_info[1:]

]

linux获取cpu使用率  第9张

total_jiffies = user + nice + system + idle + iowait + irq + softirq

idle_jiffies = idle + iowait

获取过去几秒钟的差值来估计使用率

def calculate_cpu_usage(old_stats, new_stats):

linux获取cpu使用率  第10张

diff_user, diff_nice, diff_system, _, diff_idle, _ = map(lambda x, y: y x, old_stats[0], new_stats)

return 1 (float(diff_idle)/sum(new_stats)) if sum(new_stats)>0 else "N/A"

old_total= total_jiffies 假设前次总时间是这个

linux获取cpu使用率  第11张

time.sleep(1) 休眠一秒以便计算

print(calculate_cpu_usage((user, nice, system, idle, iowait, irq, steal),(total_jiffies, nice, system, idle, iowait, irq, steal)))

read_cpu()

linux获取cpu使用率  第12张

请注意这种方法需要你编写程序处理,同时也必须小心,确保在多处理器或多重线程环境下正确地聚合数据。

根据你需要的详细程度和使用场景选择适合的方式!希望这些建议对你有所帮助。