跳转到内容

CPU性能分析工具详解 ​

课程介绍 ​

CPU性能分析是系统性能优化的重要组成部分,通过分析CPU的使用情况可以发现性能瓶颈。本课程将详细讲解CPU性能分析工具的使用方法,包括top、htop、vmstat、mpstat、iostat等工具,帮助你掌握CPU性能分析的技巧。

1. CPU性能分析概述 ​

1.1 什么是CPU性能分析 ​

CPU性能分析是指分析CPU的使用情况,找出性能瓶颈。

CPU性能分析的目的:

目的说明
性能监控监控CPU使用情况
瓶颈分析找出CPU性能瓶颈
性能优化优化CPU性能
容量规划规划CPU容量

1.2 CPU性能指标 ​

CPU性能分析的主要指标。

CPU性能指标:

指标说明
CPU使用率CPU的使用率
CPU负载CPU的负载
上下文切换CPU的上下文切换次数
中断次数CPU的中断次数
进程状态进程的状态

2. top命令 ​

2.1 top概述 ​

top是Linux系统中用于实时监控系统资源的命令。

top的特点:

特点说明
实时监控实时监控系统资源
交互操作支持交互操作
进程排序支持进程排序
进程过滤支持进程过滤

2.2 top基本用法 ​

top的基本用法。

命令:

bash
# 启动top
top

# 查看top帮助
top -h

# 查看top版本
top -v

2.3 top输出说明 ​

top输出的说明。

输出说明:

top - 00:00:00 up 1 day,  1:00,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:   1 total,   1 running,   0 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni, 100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem:   8192.0 total,   4096.0 free,   2048.0 used,   2048.0 buff/cache
MiB Swap:  2048.0 total,   2048.0 free,      0.0 used.   6144.0 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 1234 root      20   0   12345   1234    123 S   0.0   0.0   0:00.01 sshd

输出说明:

字段说明
load averageCPU负载(1分钟、5分钟、15分钟)
us用户空间CPU使用率
sy内核空间CPU使用率
ni优先级调整的CPU使用率
id空闲CPU使用率
wa等待IO的CPU使用率
hi硬中断CPU使用率
si软中断CPU使用率
st虚拟机CPU使用率

2.4 top交互操作 ​

top的交互操作。

交互操作:

操作说明
q退出top
P按CPU使用率排序
M按内存使用率排序
T按CPU时间排序
k杀死进程
r修改进程优先级
1显示每个CPU核心的使用率
h显示帮助

3. htop命令 ​

3.1 htop概述 ​

htop是top的增强版,提供更友好的界面。

htop的特点:

特点说明
友好界面提供更友好的界面
鼠标操作支持鼠标操作
颜色高亮支持颜色高亮
进程树支持进程树

3.2 htop安装 ​

htop通常默认不安装,需要手动安装。

安装htop:

bash
# Debian/Ubuntu系统
apt-get install htop

# CentOS/RHEL系统
yum install htop

3.3 htop基本用法 ​

htop的基本用法。

命令:

bash
# 启动htop
htop

# 查看htop帮助
htop -h

# 查看htop版本
htop -v

3.4 htop交互操作 ​

htop的交互操作。

交互操作:

操作说明
q退出htop
F1显示帮助
F2配置htop
F3搜索进程
F4过滤进程
F5显示进程树
F6排序进程
F7降低进程优先级
F8提高进程优先级
F9杀死进程
F10退出htop

4. vmstat命令 ​

4.1 vmstat概述 ​

vmstat是Linux系统中用于监控系统资源的命令。

vmstat的特点:

特点说明
系统监控监控系统资源
性能分析分析系统性能
历史数据提供历史数据
脚本处理支持脚本处理

4.2 vmstat基本用法 ​

vmstat的基本用法。

命令:

bash
# 查看系统资源
vmstat

# 查看系统资源(每秒更新一次,共5次)
vmstat 1 5

# 查看系统资源(显示详细信息)
vmstat -s

# 查看系统资源(显示磁盘统计)
vmstat -d

# 查看系统资源(显示 slab 统计)
vmstat -m

4.3 vmstat输出说明 ​

vmstat输出的说明。

输出说明:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0  4096   1024   2048    0    0     0     0   10    5  0  0 99  0

输出说明:

字段说明
r等待运行的进程数
b处于不可中断睡眠状态的进程数
swpd使用的交换空间
free空闲内存
buff缓冲区内存
cache缓存内存
si从磁盘交换到内存的速率
so从内存交换到磁盘的速率
bi从磁盘读取的块数
bo写入磁盘的块数
in每秒中断次数
cs每秒上下文切换次数
us用户空间CPU使用率
sy内核空间CPU使用率
id空闲CPU使用率
wa等待IO的CPU使用率
st虚拟机CPU使用率

5. mpstat命令 ​

5.1 mpstat概述 ​

mpstat是Linux系统中用于监控CPU的命令。

mpstat的特点:

特点说明
CPU监控监控CPU使用情况
多核支持支持多核CPU
详细信息提供详细信息
脚本处理支持脚本处理

5.2 mpstat安装 ​

mpstat通常默认不安装,需要手动安装。

安装mpstat:

bash
# Debian/Ubuntu系统
apt-get install sysstat

# CentOS/RHEL系统
yum install sysstat

5.3 mpstat基本用法 ​

mpstat的基本用法。

命令:

bash
# 查看CPU使用情况
mpstat

# 查看CPU使用情况(每秒更新一次,共5次)
mpstat 1 5

# 查看所有CPU核心的使用情况
mpstat -P ALL

# 查看CPU使用情况(显示详细信息)
mpstat -V

5.4 mpstat输出说明 ​

mpstat输出的说明。

输出说明:

Linux 5.4.0-80-generic (server) 	01/01/24 	_x86_64_	(4 CPU)

00:00:00  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
00:00:01  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

输出说明:

字段说明
CPUCPU编号
%usr用户空间CPU使用率
%nice优先级调整的CPU使用率
%sys内核空间CPU使用率
%iowait等待IO的CPU使用率
%irq硬中断CPU使用率
%soft软中断CPU使用率
%steal虚拟机CPU使用率
%guest虚拟机CPU使用率
%gnice虚拟机CPU使用率
%idle空闲CPU使用率

6. 实战案例 ​

案例1:分析CPU使用率 ​

场景:分析CPU使用率,找出CPU使用率高的进程。

命令:

bash
# 查看CPU使用率
top

# 按CPU使用率排序
top -P

# 查看CPU使用率最高的进程
top -b -n 1 | head -n 20

# 查看CPU使用率最高的10个进程
ps aux --sort=-%cpu | head -n 11

案例2:分析CPU负载 ​

场景:分析CPU负载,找出CPU负载高的原因。

命令:

bash
# 查看CPU负载
uptime

# 查看CPU负载(详细信息)
top

# 查看CPU负载(每秒更新一次,共5次)
vmstat 1 5

# 查看CPU负载(详细信息)
cat /proc/loadavg

案例3:分析CPU上下文切换 ​

场景:分析CPU上下文切换,找出上下文切换高的原因。

命令:

bash
# 查看CPU上下文切换
vmstat

# 查看CPU上下文切换(每秒更新一次,共5次)
vmstat 1 5

# 查看CPU上下文切换(详细信息)
cat /proc/stat | grep ctxt

案例4:分析CPU中断 ​

场景:分析CPU中断,找出中断高的原因。

命令:

bash
# 查看CPU中断
vmstat

# 查看CPU中断(每秒更新一次,共5次)
vmstat 1 5

# 查看CPU中断(详细信息)
cat /proc/interrupts

7. 性能优化建议 ​

7.1 CPU使用率优化 ​

CPU使用率优化的建议。

优化建议:

建议说明
优化代码优化代码,减少CPU使用率
使用缓存使用缓存,减少CPU使用率
使用多线程使用多线程,提高CPU利用率
使用多进程使用多进程,提高CPU利用率

7.2 CPU负载优化 ​

CPU负载优化的建议。

优化建议:

建议说明
优化代码优化代码,减少CPU负载
增加CPU增加CPU,提高CPU处理能力
使用多线程使用多线程,提高CPU利用率
使用多进程使用多进程,提高CPU利用率

7.3 上下文切换优化 ​

上下文切换优化的建议。

优化建议:

建议说明
减少线程数减少线程数,减少上下文切换
使用线程池使用线程池,减少上下文切换
使用协程使用协程,减少上下文切换
优化代码优化代码,减少上下文切换

课程总结 ​

这节课我们学习了CPU性能分析工具详解。

核心内容:

  • CPU性能分析概述
  • top命令(基本用法、输出说明、交互操作)
  • htop命令(安装、基本用法、交互操作)
  • vmstat命令(基本用法、输出说明)
  • mpstat命令(安装、基本用法、输出说明)
  • 实战案例(分析CPU使用率、分析CPU负载、分析CPU上下文切换、分析CPU中断)
  • 性能优化建议

重要命令:

  • top:实时监控系统资源
  • htop:实时监控系统资源(增强版)
  • vmstat:监控系统资源
  • mpstat:监控CPU使用情况
  • uptime:查看系统负载
  • ps:查看进程

CPU性能分析是系统性能优化的重要组成部分,掌握这些知识后,我们将在后续课程中学习内存性能分析、磁盘IO和网络性能分析等内容。

课后练习 ​

练习1(基础) ​

使用top命令查看CPU使用率。

练习2(进阶) ​

使用htop命令查看CPU使用率。

练习3(拓展) ​

使用vmstat命令查看CPU上下文切换。

评论区

专业的Linux技术学习平台,从入门到精通的完整学习路径