cpu相关指标(top、uptime、vmstat、mpstat、sar、pidstat、ps、dstat、perf、tcpdump、lscpu)等常见使用方法(一)https://developer.aliyun.com/article/1474367
/proc/stat
文件提供了关于系统各种统计信息的实时信息,包括CPU使用情况、中断、上下文切换等。以下是对 /proc/stat
的详细使用方法:
- 查看整体统计信息:
cat /proc/stat
- 运行上述命令将输出
/proc/stat
文件中的整体统计信息。 - 显示CPU使用情况:
grep 'cpu ' /proc/stat
- 上述命令将显示所有CPU的使用情况,包括用户态、系统态、空闲等时间。
- 显示指定CPU核心的使用情况:
grep 'cpu<core_number>' /proc/stat
- 将
替换为特定CPU核心的编号,例如,
cpu0
表示第一个CPU核心。 - 显示中断信息:
grep 'intr ' /proc/stat
- 此命令将显示中断的统计信息,包括每个中断的触发次数。
- 显示上下文切换信息:
grep 'ctxt ' /proc/stat
- 此命令将显示上下文切换的统计信息,包括自引导以来的上下文切换次数。
- 显示软中断信息:
grep 'softirq ' /proc/stat
- 此命令将显示软中断的统计信息,包括每个软中断的触发次数。
- 显示系统启动时间:
grep 'btime ' /proc/stat
- 此命令将显示系统启动的时间戳。
- 显示内存页的统计信息:
grep 'page ' /proc/stat
- 此命令将显示内存页的统计信息,包括页的读写、交换等情况。
- 显示系统启动后的空闲时间:
grep 'idle ' /proc/stat
- 此命令将显示系统启动后的总空闲时间,包括所有CPU核心。
- 显示CPU核心的详细信息:
grep 'cpu<core_number>' /proc/stat
- 替换
为特定CPU核心的编号,例如,
cpu0
。 - 显示中断的详细信息:
grep 'intr' /proc/stat
- 此命令将显示中断的详细信息,包括每个中断的触发次数。
- 显示上下文切换的详细信息:
grep 'ctxt' /proc/stat
- 此命令将显示上下文切换的详细信息,包括自引导以来的上下文切换次数。
- 显示软中断的详细信息:
grep 'softirq' /proc/stat
- 此命令将显示软中断的详细信息,包括每个软中断的触发次数。
- 显示CPU的详细信息:
grep '^cpu[0-9]' /proc/stat
- 此命令将显示每个CPU核心的详细信息,包括用户态、系统态、空闲等时间。
- 显示CPU时间的详细信息:
grep '^cpu ' /proc/stat
- 此命令将显示总体CPU时间的详细信息,包括用户态、系统态、空闲等时间。
/proc/stat
文件的内容可能有点庞大,但可以根据具体需求使用上述命令提取感兴趣的统计信息。
进程CPU使用率(top、pidstat、ps、htop、atop)
pidstat
是一个用于监视进程资源使用情况的工具,通常属于 sysstat
软件包的一部分。下面是一些 pidstat
的详细使用方法:
pidstat [选项] [间隔时间 [次数]]
常见选项:
-u
:显示 CPU 使用情况。-r
:显示内存使用情况。-d
:显示磁盘 I/O 使用情况。-w
:显示上下文切换和任务切换。-p
:指定监视的进程号。-t
:显示线程级别的统计。-h
:以可读格式显示统计信息。-I
:设置报告间隔时间(秒)。-U
:显示 CPU 使用情况的累积值。
示例用法:
- 监视 CPU 使用情况:
pidstat -u 1
- 这将以1秒的间隔显示每个进程的 CPU 使用情况。
- 监视特定进程的 CPU 使用情况:
pidstat -u -p <pid> 1
- 替换
为要监视的进程号。
- 显示内存使用情况:
pidstat -r 1
- 这将以1秒的间隔显示每个进程的内存使用情况。
- 显示磁盘 I/O 使用情况:
pidstat -d 1
- 这将以1秒的间隔显示每个进程的磁盘 I/O 使用情况。
- 显示上下文切换和任务切换:
pidstat -w 1
- 这将以1秒的间隔显示每个进程的上下文切换和任务切换情况。
- 显示线程级别的统计:
pidstat -t 1
- 这将以1秒的间隔显示每个进程的线程级别的统计信息。
- 显示 CPU 使用情况的累积值:
pidstat -U 1
- 这将以1秒的间隔显示 CPU 使用情况的累积值。
注意事项:
pidstat
默认情况下会显示所有正在运行的进程。可以通过-p
选项指定要监视的特定进程。- 间隔时间和次数是可选的,如果不提供,默认将显示一次统计信息。
pidstat
的详细输出包括 CPU 用户空间时间、CPU 内核空间时间、CPU 空闲时间、内存使用、磁盘 I/O 等信息。
ps
是一个用于显示当前系统进程状态的命令。以下是 ps
命令的一些详细使用方法:
ps [选项]
常见选项:
- 进程选择选项:
a
:显示所有进程,包括其他用户的进程。u
:以用户为中心显示进程信息。x
:显示没有控制终端的进程。
ps aux
- 这将显示所有用户的详细进程信息。
- 输出格式选项:
o
:自定义输出格式。f
:以树状结构显示进程关系。
ps aux --sort=-%cpu
- 这将按 CPU 使用率降序显示所有用户的详细进程信息。
- 进程状态选项:
r
:显示运行中的进程。s
:显示休眠中的进程。
ps aux --state R
- 这将显示所有运行中的进程。
- 进程排序选项:
--sort
:按指定列进行排序。
ps aux --sort=-%mem
- 这将按内存使用率降序显示所有用户的详细进程信息。
- 其他选项:
e
:显示环境变量。www
:宽输出,适用于显示长命令行。
ps auxe
- 这将显示带有环境变量的所有用户的详细进程信息。
示例用法:
- 显示当前用户的所有进程:
ps
- 显示所有用户的详细进程信息:
ps aux
- 以树状结构显示进程关系:
ps auxf
- 按 CPU 使用率降序显示所有用户的详细进程信息:
ps aux --sort=-%cpu
- 显示运行中的进程:
ps aux --state R
- 按内存使用率降序显示所有用户的详细进程信息:
ps aux --sort=-%mem
- 显示带有环境变量的所有用户的详细进程信息:
ps auxe
注意事项:
ps
命令的选项和输出格式可能在不同的操作系统上有所不同。上述示例主要针对 Linux 系统,其他 Unix 系统可能有些许区别。
htop
是一个交互式的系统监视工具,它可以以颜色和图形的形式展示系统的各种信息。以下是 htop
的一些详细使用方法:
- 安装 htop:
在大多数 Linux 发行版中,可以使用包管理器安装htop
:
sudo apt-get install htop # Ubuntu/Debian sudo yum install htop # CentOS/RHEL
- 运行 htop:
直接在终端中输入htop
并按回车键即可启动htop
。
htop
- htop 主要界面元素:
- 顶部区域: 包含系统整体的负载信息、CPU 使用率、内存使用情况等。
- 进程列表: 显示当前运行的进程列表,按 CPU 使用率或内存使用率排序。
- 底部区域: 提供可用的快捷键列表。
- 基本操作:
- 使用箭头键在进程列表中导航。
- 使用
F5
刷新显示。 - 使用
F9
打开进程操作菜单,可以选择杀死进程等选项。 - 使用
F10
退出htop
。
- 颜色标识:
htop
使用颜色标识不同类型的进程和系统资源使用情况,比如 CPU 使用率、内存使用率、交换空间等。 - 进程操作:
- 使用
F9
进入进程操作菜单,选择需要的操作,如杀死进程。 - 使用
k
键杀死选中的进程。
- 搜索进程:
- 使用
/
键输入关键字搜索进程。
- 设置选项:
- 使用
F2
进入设置界面,可以配置显示选项、排序方式等。
- 快捷键:
htop
提供了一系列快捷键,可以在底部区域查看。例如:
F1
显示帮助。F3
和F4
用于搜索进程。F6
选择排序方式。- …
注意事项:
htop
可以根据系统配置和权限的不同而提供不同的功能,一些操作可能需要 root 权限。htop
的功能和界面可能在不同的操作系统和版本中有所不同,上述介绍主要基于 Linux 系统。
atop
是一个类似于 top
的系统性能监视工具,但它提供了更多的功能和更详细的信息。以下是 atop
的一些详细使用方法:
- 安装 atop:
在大多数 Linux 发行版中,可以使用包管理器安装atop
:
sudo apt-get install atop # Ubuntu/Debian sudo yum install atop # CentOS/RHEL
- 运行 atop:
直接在终端中输入atop
并按回车键即可启动atop
。
atop
- atop 主要界面元素:
- 顶部区域: 包含系统整体的负载信息、CPU 使用率、内存使用情况等。
- 进程列表: 显示当前运行的进程列表,按 CPU 使用率或内存使用率排序。
- 底部区域: 提供了可用的快捷键列表。
- 基本操作:
- 使用箭头键在进程列表中导航。
- 使用
t
切换显示模式,包括cpu
、mem
、disk
等。 - 使用
P
切换到按 CPU 使用率排序的进程列表,使用M
切换到按内存使用率排序的列表。
- 颜色标识:
atop
使用颜色标识不同类型的进程和系统资源使用情况,类似于htop
。 - 进程操作:
- 使用
k
键杀死选中的进程。 - 使用
r
键重启选中的进程。
- 搜索进程:
- 使用
:
键输入关键字搜索进程。
- 设置选项:
- 使用
O
进入设置界面,可以配置显示选项、排序方式等。
- 显示磁盘和网络信息:
- 使用
d
切换到显示磁盘信息。 - 使用
n
切换到显示网络信息。
- 快捷键:
atop
提供了一系列快捷键,可以在底部区域查看。例如:
?
显示帮助。q
退出atop
。
- 查看历史记录:
- 使用
t
键可以查看系统资源的历史记录。
- 保存数据:
- 使用
W
键将当前atop
的状态保存到文件中。
注意事项:
atop
需要 root 权限来访问某些系统信息。atop
提供了丰富的信息和功能,可以通过手册页 (man atop
) 查看更详细的文档。
系统上下文切换(vmstat)
进程上下文切换(pidstatat)
软中断(top、/proc/softirqs、mpstat)
/proc/softirqs
文件提供了有关软中断(softirqs)的信息。软中断是内核用于在内核上下文中异步执行延迟工作的一种机制。/proc/softirqs
文件显示了每个软中断的统计信息。以下是使用该文件的一些详细方法:
- 查看
/proc/softirqs
内容:
直接使用cat
命令查看/proc/softirqs
文件的内容:
cat /proc/softirqs
- 输出将显示软中断的统计信息,按照软中断类型和 CPU 核心分组。
- 软中断的列说明:输出的列包括:
- CPU 核心编号: 列的第一列显示 CPU 的编号。
- 软中断类型: 除了 CPU 列之外的列包含不同类型的软中断。
- Counter: 每个软中断类型的计数器,表示软中断已经触发的次数。
- 示例如下:
CPU0 CPU1 CPU2 CPU3 ... HI: 16693 12848 9694 15849 Hardware interrupts ... TIMER: 35946 29293 29872 28846 Timer interrupts ...
- 解释软中断类型:
- HI (Hardware interrupts): 硬中断,表示硬件设备引起的中断。
- TIMER (Timer interrupts): 定时器中断,由系统定时器引起的中断。
- 其他类型的软中断也可能出现,取决于系统配置和正在运行的任务。
- 监控软中断:
- 如果你想监控软中断的变化,可以使用类似
watch
命令:
watch -n 1 cat /proc/softirqs
- 这将每秒刷新一次软中断的统计信息。
注意事项:
/proc/softirqs
文件提供了一种实时查看软中断统计信息的方法,用于诊断系统性能问题。- 软中断是内核中的一种异步执行机制,通常用于处理网络数据包、磁盘 I/O 等。
- 在解释软中断统计时,重要的是查看相邻两次采样之间的变化,而不仅仅关注绝对值。
硬中断(vmstat、/proc/interrupts)
/proc/interrupts
文件提供了关于系统中断的详细信息,包括每个 IRQ(Interrupt Request)线路的中断请求统计。以下是使用该文件的详细方法:
- 查看
/proc/interrupts
内容:
直接使用cat
命令查看/proc/interrupts
文件的内容:
cat /proc/interrupts
- 输出将显示每个 IRQ 线路上的中断请求统计,按照 CPU 核心和中断类型分组。
- IRQ 统计列的说明:输出的列包括:
- IRQ: 中断请求线路的编号。
- CPU 核心编号: 列的第一列显示 CPU 的编号。
- Count: 每个 IRQ 线路的中断请求数量。
- 示例如下:
CPU0 CPU1 CPU2 CPU3 ... 16: 0 0 0 0 IR-PCI-MSI 344064-edge xhci_hcd 17: 0 0 0 0 IR-PCI-MSI 294912-edge i915 18: 0 0 0 0 IR-PCI-MSI 262144-edge ahci[0000:00:1f.2] ...
- 解释中断类型:
- IR-PCI-MSI: 使用 PCI MSI(Message Signaled Interrupts)机制的设备的中断。
- edge: 使用传统的中断触发方式的设备。
- 其他类型的中断也可能出现,具体取决于系统硬件和正在运行的任务。
- 监控中断:
- 如果你想监控中断的变化,可以使用类似
watch
命令:
watch -n 1 cat /proc/interrupts
- 这将每秒刷新一次中断统计信息。
注意事项:
/proc/interrupts
文件提供了实时查看系统中断统计信息的方法,用于诊断系统性能问题。- 中断请求是硬件设备(如网卡、磁盘控制器)向 CPU 发送的信号,通知 CPU 某事件已发生需要处理。
- 通过监控中断,可以了解系统中哪些设备产生了中断,以及这些中断是否超过了正常范围,有助于识别可能的性能问题。
cpu相关指标(top、uptime、vmstat、mpstat、sar、pidstat、ps、dstat、perf、tcpdump、lscpu)等常见使用方法(三)https://developer.aliyun.com/article/1474369