linux如何统计进程cpu利用率
linux如何统计进程cpu利用率详细介绍
在 Linux 系统中,统计进程 CPU 利用率可以通过多种工具实现,以下是常用的方法:
一、使用
top 命令(动态实时监控)
top 是最常用的系统监控工具,可实时显示进程的 CPU 利用率。
操作步骤:
- 直接在终端输入
top,进入交互界面。 - 默认按 CPU 利用率排序,显示各进程的实时状态。
- 按
P键可按 CPU 利用率降序排列,快速定位占用最高的进程。 - 按
M键按内存占用排序,按T键按累计时间排序。
关键列说明:
- %CPU:进程的 CPU 利用率(单个核心的百分比,若超过 100% 表示使用多个核心)。
- PID:进程 ID。
- USER:进程所属用户。
- PR:优先级。
- NI:Nice 值(负值表示高优先级)。
- TIME+:进程累计使用的 CPU 时间。
二、使用
ps 命令(静态快照)
ps 可获取进程的即时状态,常用于脚本或非交互场景。
常用命令:
- 显示所有进程的 CPU 利用率:
bashpid,user,%cpu,cmd -%cpu-e:显示所有进程。-o:自定义输出列(pid进程 ID,user用户,%cpuCPU 利用率,cmd命令)。--sort=-%cpu:按 CPU 利用率降序排列。
- 显示指定进程的详细信息(如进程 ID 为
1234):
bashpid,user,%cpu,cmd
三、使用
pidstat 命令(更精确的统计)
pidstat 是 sysstat 工具包中的命令,可按指定间隔统计进程的 CPU 利用率。
安装工具包(若未安装):
bash
sysstatyum sysstat
常用命令:
- 每 2 秒统计一次进程 ID 为
1234的 CPU 利用率,共统计 3 次:
bashpidstat-p:指定进程 ID。2:间隔时间(秒)。3:统计次数。
- 显示所有进程的 CPU 利用率(包括子进程):
bashpidstat-u:显示 CPU 相关统计(默认选项)。
四、使用
htop 命令(增强版
top)
htop 是交互式进程监控工具,支持鼠标操作,界面更友好,显示信息更丰富。
安装:
bash
yum
操作:
输入 htop 后,按 F6 可按 CPU 利用率排序,直接查看进程状态。
五、通过
/proc 文件系统手动计算(进阶方法)
Linux 内核将进程信息存储在 /proc/[pid]/stat 中,可通过读取该文件计算 CPU 利用率。
原理:
CPU 利用率公式:
plaintext
CPU利用率(%) = [(当前进程CPU时间 - 上次进程CPU时间) / (当前系统总CPU时间 - 上次系统总CPU时间)] × 100
步骤(示例脚本):
bash
/proc/$pid/stat
/proc/stat
/proc/$pid/stat
/proc/stat
$echo $new_stat awk '{print $$$$}' $echo $old_stat awk '{print $$$$}'
$new_total $old_total
cpu_time_diff total_time_diff
%"
总结:
- 实时监控:首选
top或htop,适合交互式查看。 - 脚本化统计:使用
ps或pidstat,便于在自动化任务中获取数据。 - 精确计算:通过
/proc文件系统手动计算,适合需要编程实现的场景。
根据需求选择合适的工具即可高效统计进程的 CPU 利用率。