如何在Linux命令行中检查CPU使用率

网络东西不好懂 2024-02-12 08:44:58

目录:

使用 top 命令实时监控 CPU 使用率查看系统整体情况根据 CPU 使用率排序进程定时刷新显示查看特定用户的进程使用 vmstat 命令查看系统整体情况设置刷新间隔查看 CPU 使用率查看 CPU 上下文切换和中断查看磁盘 I/O 统计使用 sar 命令设置时间间隔和次数查看 CPU 使用率历史数据输出到文件使用 mpstat 命令查看指定 CPU 核心查看所有 CPU 核心的使用率查看多个时间点的 CPU 使用率结合 `top` 进行监控使用 perf 命令收集性能数据生成报告收集 CPU 使用率数据查看调用图使用 perf script使用 perf annotate使用 strace 命令输出到文件输出详细信息输出调用次数跟踪特定系统调用跟踪子进程结合 `top` 进行监控结合 `perf` 进行性能分析总结

使用 top 命令

top 是一个强大的实时系统性能监控工具,它提供了对系统资源的实时动态监测。通过 top 命令,你可以查看 CPU、内存、进程等系统资源的使用情况,以及各个进程的详细信息。

在终端中输入以下命令启动 top:

top

这将会显示一个实时更新的系统状态面板,其中包含 CPU 使用率、内存使用率、任务队列信息等。

实时监控 CPU 使用率

在 top 的默认显示中,CPU 使用率是最显眼的一部分。它显示在顶部的第三行,如下所示:

%Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

这一行提供了 CPU 使用率的详细信息,包括用户空间使用率(us)、系统空间使用率(sy)、空闲率(id)等。在这个例子中,99.6% 的时间 CPU 处于空闲状态。

top 的输出可能会包含大量信息,因此理解如何解读这些信息是非常重要的。以下是一些关键的信息点:

PID(进程ID):每个运行中的进程都有一个唯一的PID。USER:进程属于哪个用户。%CPU:进程使用的 CPU 百分比。**TIME+**:进程占用 CPU 的累计时间。VIRT、RES、SHR:进程使用的虚拟内存、物理内存、共享内存。查看系统整体情况

启动 top 后,你将看到一个实时更新的系统状态面板。按键盘上的 q 键可以退出 top。

top根据 CPU 使用率排序进程

按键盘上的 P 键,top 将按照 CPU 使用率高低排序进程。

top -o %CPU定时刷新显示

使用 -d 选项可以设置 top 的刷新间隔,例如每3秒刷新一次。

top -d 3查看特定用户的进程

通过 -u 选项,你可以查看特定用户的进程,例如 user1。

top -u user1使用 vmstat 命令

vmstat 是 Virtual Memory Statistics(虚拟内存统计)的缩写,它用于显示虚拟内存、进程、CPU等方面的统计信息。通过 vmstat,你可以查看系统的整体性能以及各个方面的详细数据。

在终端中输入以下命令启动 vmstat:

vmstat

这将显示系统的虚拟内存、CPU、进程等信息,并实时更新。

vmstat 的输出包含多个字段,主要包括:

procs:显示进程统计信息。memory:显示内存使用统计信息。swap:显示交换空间使用统计信息。io:显示 I/O 统计信息。system:显示系统运行时间及一般性统计信息。cpu:显示 CPU 使用统计信息。查看系统整体情况

启动 vmstat 后,你将看到一个实时更新的系统状态面板。按键盘上的 q 键可以退出 vmstat。

vmstat设置刷新间隔

使用 -n 选项可以设置 vmstat 的刷新间隔,例如每3秒刷新一次。

vmstat -n 3查看 CPU 使用率

vmstat 的输出中,cpu 行提供了 CPU 使用率的详细信息。例如,下面的输出表示 CPU 空闲率为96.3%:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 123456 78901 23456 0 0 0 0 12 34 1 2 96 0 0查看 CPU 上下文切换和中断

在 vmstat 输出中,in 行表示每秒的上下文切换次数,cs 行表示每秒的中断次数。

vmstat -w查看磁盘 I/O 统计

io 行提供了磁盘 I/O 的统计信息,包括每秒的读写次数。

vmstat -d使用 sar 命令

sar 是 System Activity Reporter(系统活动报告)的缩写,它是 sysstat 工具包的一部分,用于收集和报告系统的性能数据,包括 CPU 使用率、内存使用率、磁盘 I/O 等。

在终端中输入以下命令启动 sar:

sar

这将显示系统的平均负载、CPU 使用率等信息。

设置时间间隔和次数

使用 -u 选项可以指定 sar 报告 CPU 使用率,而 -n 选项可以设置报告的时间间隔和次数。例如,每隔2秒报告一次,共报告5次:

sar -u 2 5查看 CPU 使用率历史数据

使用 sar 命令可以查看系统的 CPU 使用率历史数据。下面的命令将报告过去24小时内每隔10分钟的 CPU 使用率:

sar -u -s 00:00:00 -e 23:59:59 -i 600输出到文件

你也可以将 sar 的输出保存到文件中,以便后续分析。例如,将 CPU 使用率报告保存到文件 cpu_usage.log:

sar -u 2 5 > cpu_usage.log

使用 sar 的数据,你可以利用其他工具如 ksar 或 sar2html 等,将性能数据图形化展示,更直观地观察趋势。

sar 收集的历史数据可以帮助你更深入地了解系统的性能特征,进行趋势分析和性能优化。

通过分析历史的 CPU 使用率数据,你可以识别高峰期、低谷期,并采取相应的措施进行性能优化。

sar 也可以报告磁盘 I/O 的性能数据,通过分析这些数据,你可以识别潜在的磁盘瓶颈。

使用 mpstat 命令

mpstat 是在多核 CPU 系统上运行的 sar 的一个前端工具,它提供了更详细的 CPU 使用率信息,包括每个 CPU 核心的利用率。

在终端中输入以下命令启动 mpstat:

mpstat

这将显示每个 CPU 核心的使用率、上下文切换、中断等信息。

查看指定 CPU 核心

使用 -P 选项可以指定查看某个 CPU 核心的使用率。例如,查看第二个 CPU 核心的使用率:

mpstat -P 2查看所有 CPU 核心的使用率

默认情况下,mpstat 将显示所有 CPU 核心的使用率。下面的命令将每隔2秒报告一次所有 CPU 核心的使用率:

mpstat 2查看多个时间点的 CPU 使用率

使用 -I 选项可以设置报告的时间间隔和次数。例如,每隔5秒报告一次,共报告3次:

mpstat -I 5 3结合 top 进行监控

mpstat 可以与 top 结合使用,实现对多核 CPU 的更全面监控。例如,使用以下命令:

mpstat -P ALL 2 | top

与前面的工具一样,mpstat 的输出也可以通过图形化工具进行更直观的展示和分析。

使用 perf 命令

perf 是 Linux 系统上的性能分析工具,它可以收集性能数据,并生成详细的报告,帮助你找到系统中的性能瓶颈。

在终端中输入以下命令启动 perf:

perf

这将进入 perf 的交互式命令行界面。你可以通过输入不同的命令来执行各种性能分析任务。

收集性能数据

使用 perf record 命令可以开始收集性能数据。例如,收集一个命令的性能数据:

perf record command生成报告

使用 perf report 命令可以生成性能报告,显示各种性能事件的统计信息。

perf report收集 CPU 使用率数据

使用 perf 可以收集 CPU 使用率的详细数据,包括函数调用图、指令和缓存的分析等。

perf record -g -a sleep 10查看调用图

使用 perf 查看函数调用图,以便深入了解代码执行路径。

perf report -g graph使用 perf script

perf script 可以输出性能数据的脚本,以便进一步分析。

perf script使用 perf annotate

perf annotate 可以在源代码中显示性能数据,帮助你找到瓶颈。

perf annotate -d /path/to/binary使用 strace 命令

strace 是一个用于跟踪进程系统调用和信号的命令行工具。通过在程序执行期间截获和记录系统调用的信息,可以帮助你了解程序的运行情况,尤其是在寻找性能问题时非常有用。

在终端中输入以下命令启动 strace:

strace command

这将输出程序的系统调用信息,并可帮助你分析程序的执行过程。

输出到文件

使用 -o 选项可以将 strace 的输出保存到文件中:

strace -o output.txt command输出详细信息

使用 -v 选项可以输出更详细的信息,包括寄存器和内存的内容:

strace -v command输出调用次数

使用 -c 选项可以统计系统调用的次数:

strace -c command跟踪特定系统调用

使用 -e 选项可以指定要跟踪的系统调用:

strace -e trace=open,read command跟踪子进程

使用 -f 选项可以跟踪子进程的系统调用:

strace -f command结合 top 进行监控

strace 可以与 top 结合使用,实现对程序的更全面监控。

strace -c -p PID结合 perf 进行性能分析

与前面的工具一样,strace 的输出也可以通过 perf 进行更深入的性能分析。

perf record -e syscalls:sys_enter_openat -g -p PID总结实时监控: 使用 top 来实时查看系统资源的使用情况,特别是 CPU 和内存的使用率。历史数据分析: 使用 sar 定期收集系统性能数据,以便后续分析历史性能趋势。多核 CPU 监控: 使用 mpstat 来监控多核 CPU 的使用率,了解每个核心的性能状况。性能分析: 使用 perf 进行更深入的性能分析,包括函数调用图、指令和缓存的分析等。系统调用跟踪: 使用 strace 跟踪系统调用,解决程序执行中的异常情况。

建议的使用场景:

系统监控: 使用 top、vmstat 和 sar 进行实时和历史性能监控,以便了解系统整体的健康状况。CPU 瓶颈分析: 使用 mpstat、perf 和 strace 进行更深入的 CPU 使用率分析,找出潜在的性能瓶颈。性能优化: 结合 perf 进行性能分析,找到性能瓶颈并进行优化,以提高系统性能。程序异常分析: 使用 strace 跟踪系统调用,解决程序执行过程中的异常问题,如卡顿、死锁等。
0 阅读:80

网络东西不好懂

简介:感谢大家的关注