本文主要探讨了一系列用于监控和分析系统 CPU 性能的工具,包括 top
、uptime
、vmstat
、mpstat
、sar
、pidstat
、ps
、dstat
、perf
、tcpdump
和 lscpu
。这些工具在系统管理和性能优化中起着关键的作用。通过实时监测进程、系统负载、虚拟内存、CPU 使用情况以及网络数据包,管理员可以全面了解系统资源的分布和使用情况,迅速发现和解决性能瓶颈,提高系统的运行效率和稳定性。文章将深入介绍每个工具的使用方法和功能,以帮助读者更好地理解和利用这些工具进行系统性能分析和优化。
平均负载(uptime、top)
top
命令是一个实时的系统资源监视器,用于查看系统中正在运行的进程的信息。以下是 top
命令的详细使用方法:
1. 基本格式:
top
2. 常用选项:
-c
: 显示完整的命令行。-d
: 指定刷新时间,单位为秒。-u
: 指定要显示的用户。-p
: 指定要监视的进程。-h
: 显示帮助信息。q
: 退出top
。
3. top
窗口主要区域:
- 第一行: 系统概览,包括系统时间、运行时间、登录用户数、负载平均值等等。
- 第二行: 进程总数、运行中的进程数、睡眠中的进程数、停止的进程数等。
- 第三行: CPU 使用情况,包括用户空间、系统空间、空闲等百分比。
- 第四行: 内存使用情况,包括总内存、已使用、空闲、缓冲区等。
- 进程列表: 列出了当前运行的进程,包括进程 ID、用户、CPU 使用率、内存使用率、进程状态、启动时间等。
4. 操作:
k
: 结束一个进程,输入进程的 PID,按 Enter。r
: 重新调整进程的优先级,输入进程的 PID,按 Enter,然后输入新的优先级值。Space
: 切换排序方式,可以按照 CPU 使用率、内存使用率等排序。
5. 示例:
- 基本使用:
top
- 指定刷新时间为2秒:
top -d 2
- 显示完整的命令行:
top -c
- 指定要显示的用户:
top -u username
- 指定要监视的进程:
top -p pid
6. 注意事项:
top
默认按 CPU 使用率降序排序进程。按Shift + M
键可以切换到按内存使用率排序。top
是一个实时监控工具,通过不断更新显示当前系统状态。- 可以通过
man top
查看top
的手册页,了解更多选项和用法。
top
提供了丰富的信息,可以通过键盘快捷键进行交互,方便用户实时监视系统状态。
uptime
命令用于显示系统的当前运行时间、平均负载以及当前登录用户数。以下是 uptime
命令的详细使用方法:
- 基本用法:
uptime
- 这将显示系统的当前运行时间、平均负载以及当前登录用户数。
- 显示详细信息:
uptime -p
- 这将显示更详细的系统运行时间,包括天数、小时、分钟。
- 定时刷新显示:
watch uptime
- 这将周期性地刷新并显示
uptime
的输出,以实时监视系统的运行状况。 - 显示系统启动时间:
uptime -s
- 这将显示系统的启动时间,即系统何时启动的。
- 显示平均负载:
uptime | cut -d "," -f 3-4
- 这将只显示平均负载的部分,通常用于脚本或监控。
- 指定时间格式:
uptime -f
- 这将以特定格式显示系统启动的时间。
- 以可读的方式显示平均负载:
uptime -r
- 这将以可读的方式显示平均负载,例如 “2 days”。
- 显示每个核心的平均负载:
uptime -q
- 这将显示每个核心的平均负载,适用于多核系统。
- 指定显示时间间隔:
uptime -i 5
- 这将每隔 5 秒显示一次系统的运行时间、平均负载和当前登录用户数。
- 显示帮助信息:
uptime --help
这将显示 uptime
命令的帮助信息,列出可用的选项。
请注意,uptime
命令通常是系统监控和性能分析的起点之一,它提供了一个简单而有用的方式来查看系统的整体状况。
系统整体cpu使用率(vmstat、mpstat、top、sar、/proc/stat)
vmstat
命令用于报告虚拟内存统计信息,包括进程、内存、交换、IO 等。以下是 vmstat
命令的详细使用方法:
- 基本用法:
vmstat
- 这将显示一组默认的虚拟内存统计信息,包括进程、内存、交换、IO 等。
- 指定刷新时间和次数:
vmstat [delay] [count]
delay
是刷新时间间隔,单位是秒。count
是刷新次数。如果不指定count
,vmstat
将一直运行。
- 例如,
vmstat 2 5
将每两秒刷新一次,共刷新五次。 - 显示详细信息:
vmstat -a
- 这将显示更详细的系统活动统计信息,包括内存、交换、IO 等。
- 显示活动与非活动内存统计:
vmstat -a -S m
- 这将以 MB 为单位显示内存统计信息。
- 仅显示指定内容:
vmstat -s
- 这将只显示汇总的内存、交换、中断等信息,而不显示进程和IO的详细信息。
- 显示磁盘IO统计信息:
vmstat -d
- 这将显示磁盘的读写统计信息。
- 显示系统中断和上下文切换:
vmstat -i
- 这将显示中断和上下文切换的统计信息。
- 显示 CPU 利用率详细信息:
vmstat -P ALL
- 这将显示每个 CPU 的利用率详细信息。
- 显示内存和交换空间使用情况:
vmstat -SM
- 这将以 MB 为单位显示内存和交换空间的使用情况。
- 显示进程的统计信息:
vmstat -p [disk]
- 这将显示进程的统计信息,包括在等待磁盘的进程。
- 显示内存的 slab 统计信息:
vmstat -m
- 这将显示内核 slab 的统计信息。
- 显示版本信息:
vmstat -V
- 这将显示
vmstat
的版本信息。 - 显示帮助信息:
vmstat --help
- 这将显示
vmstat
命令的帮助信息,列出可用的选项。
vmstat
命令对于监视系统整体性能、识别性能瓶颈非常有用。通过不同的选项,你可以选择显示不同类型的统计信息。
sar
(System Activity Reporter)是一个用于报告系统活动统计信息的工具。它可以显示系统的各种性能参数,如CPU使用率、内存使用率、磁盘I/O、网络活动等。以下是 sar
命令的一些详细使用方法:
- 基本用法:
sar
- 运行
sar
命令将显示当前日期的系统活动报告。 - 指定时间间隔和次数:
sar [interval] [count]
interval
是报告之间的时间间隔(以秒为单位)。count
是报告的次数。
- 例如,
sar 5 3
将每5秒生成一次报告,共生成3次。 - 显示CPU利用率:
sar -u •
- 这将显示CPU的使用率,包括用户、系统和空闲时间。
- 显示内存使用情况:
sar -r
- 这将显示内存的使用情况,包括空闲、缓存和已使用的内存。
- 显示磁盘I/O统计信息:
sar -b
- 这将显示磁盘I/O的统计信息,包括每秒的读写次数、读写块数等。
- 显示队列和负载信息:
sar -q
- 这将显示系统队列的统计信息,包括进程队列长度和平均负载。
- 显示网络统计信息:
sar -n DEV
- 这将显示网络接口的统计信息,包括接收和发送的数据包数量、错误等。
- 显示系统调用和交换空间统计:
sar -S
- 这将显示系统调用和交换空间的统计信息。
- 显示文件系统统计信息:
sar -f /var/log/sa/sa<DD>
- 替换 为某一天的日期(如01,02),这将显示指定日期的文件系统统计信息。
- 显示进程创建和删除的统计信息:
sar -c
- 这将显示进程的创建和删除的统计信息。
- 显示交换分区的统计信息:
sar -W
- 这将显示交换分区的统计信息。
- 以ASCII图形显示实时负载信息:
sar -q -n DEV -u -o | sadf -g
- 这将以ASCII图形形式显示CPU使用率、队列长度和网络活动的实时图形。
- 显示版本信息:
sar -V
- 这将显示
sar
命令的版本信息。 - 显示帮助信息:
sar --help
- 这将显示
sar
命令的帮助信息,列出可用的选项。
sar
命令提供了丰富的系统活动报告,可以根据具体需求选择不同的选项进行监控。
mpstat
(Multiple Processor Statistics)是一个用于显示多处理器系统中各个处理器的使用情况的工具。以下是 mpstat
命令的详细使用方法:
- 基本用法:
mpstat
- 运行
mpstat
命令将显示所有可用处理器的平均统计信息。 - 指定时间间隔和次数:
mpstat [interval] [count]
interval
是报告之间的时间间隔(以秒为单位)。count
是报告的次数。
- 例如,
mpstat 5 3
将每5秒生成一次报告,共生成3次。 - 显示指定处理器的统计信息:
mpstat -P ALL
- 这将显示所有处理器的详细统计信息,包括每个处理器的使用率、空闲率等。
- 显示指定处理器的统计信息(指定处理器编号):
mpstat -P <processor_number>
- 替换
为特定处理器的编号。例如,
mpstat -P 0
将显示处理器 0 的统计信息。 - 以JSON格式输出统计信息:
mpstat -o JSON
- 这将以JSON格式输出处理器的统计信息。
- 显示CPU的软中断和硬中断信息:
mpstat -I SUM
- 这将显示CPU的软中断和硬中断的总体信息。
- 显示详细的I/O统计信息:
mpstat -d
- 这将显示磁盘I/O的详细统计信息,包括读写速率、IOPS等。
- 显示内存统计信息:
mpstat -s
- 这将显示内存的统计信息,包括页面交换、缺页错误等。
- 显示任务上下文切换和中断统计信息:
mpstat -w
- 这将显示任务上下文切换和中断的统计信息。
- 显示虚拟内存和文件交换统计信息:
mpstat -W
- 这将显示虚拟内存和文件交换的统计信息。
- 显示指定进程的统计信息:
mpstat -p <process_id>
- 替换
为特定进程的标识符(PID)。这将显示指定进程的统计信息。
- 显示版本信息:
mpstat -V
- 这将显示
mpstat
命令的版本信息。 - 显示帮助信息:
mpstat --help
- 这将显示
mpstat
命令的帮助信息,列出可用的选项。
mpstat
命令是一个强大的工具,通过不同的选项可以获取系统各个方面的性能统计信息,有助于分析系统的负载和性能。
cpu相关指标(top、uptime、vmstat、mpstat、sar、pidstat、ps、dstat、perf、tcpdump、lscpu)等常见使用方法)二 https://developer.aliyun.com/article/1474368