CPU
基本概念
中央处理器(Central Processing Unit,简称CPU)是计算机的主要设备之一,其功能是解释计算机指令以及处理计算机软件中的数据。
- 物理核
物理核即可以真实看到的CPU核,有独立的电路元件以及L1、L2缓存,可以独立地执行指令。一个CPU可以有多个物理核。
- 逻辑核
逻辑核即在同一个物理核内,逻辑层面上存在的核。一般一个物理核对应一个线程,但是如果开启了超线程,当超线程数量为n时,一个物理核可以分成n个逻辑核。
可以通过lscpu命令查看服务器中有多少个CPU,每个CPU中有几个物理核,以及每个CPU有几个逻辑核。
常用CPU性能分析工具
- uptime
uptime可用于打印系统平均负载,通过查看最后三个数字,可以判断平均负载的变化趋势。平均负载大于CPU数量时表示CPU不足以服务线程,部分线程在等待;平均负载小于CPU数量,代表当前还有余量。

- vmstat
使用vmstat可以动态地了解系统资源的使用情况,以及查看系统中是哪一个环节最占用系统资源。
通过vmstat -h命令可以查看命令详解参数。
例如:使用vmstat进行监测,每隔1秒刷新一次
1# vmstat 1

在命令的输出信息中,各字段所代表的含义如下:
| 字段 | 含义 |
|---|---|
| procs | 进程信息字段。 |
| memory | 内存信息字段。 |
| swap | 交换分区信息字段。 |
| io | 磁盘读/写信息字段。 |
| system | 系统信息字段。 |
| cpu | CPU信息字段-us:非内核进程消耗 CPU 运算时间的百分比。-sy:内核进程消耗 CPU 运算时间的百分比。-id:空闲。-wa:等待 I/O 所消耗的 CPU 百分比。-st:被虚拟机所盗用的 CPU 百分比。 |
- sar
sar可用于分析系统性能,可以用来观察当前的活动以及配置,用以归档和报告历史统计信息。
例如:
1# 安装
2# yum install -y sysstat
3
4# 查看系统CPU的整体负载情况,每3秒统计一次,共统计5次
5# sar -u 3 5

在命令的输出信息中,各字段所代表的含义如下:
| 字段 | 含义 |
|---|---|
| %user | 用户模式下消耗的 CPU 时间的比例。 |
| %nice | 通过 nice 改变了进程调度优先级的进程,在用户模式下消耗的 CPU 时间的比例。 |
| %system | 系统模式下消耗的 CPU 时间的比例。 |
| %iowait | CPU 等待磁盘 I/O 导致空闲状态消耗的时间比例。 |
| %steal | 利用操作系统等虚拟化技术,等待其他虚拟CPU计算占用的时间比例。 |
| %idle | CPU空闲时间比例。 |
- ps
ps可用于查看正在运行的进程。
1# 查看系统中所有的进程,以及查看进程的父进程的 PID 和进程优先级
2# ps -le

1# 查看当前shell产生的进程
2# ps -l

- top
top可以动态地持续监听进程的运行状态,显示最消耗CPU的进程。
1# top

- perf
perf top命令,可以实时监测系统中各个进程的CPU占用率、内存分配情况、函数调用堆栈等信息。perf top默认显示CPU占用率前10的进程。
1# perf top

perf top 的其他参数 可以用 perf top -h 查看:

查看5秒钟的CPU使用情况,并将其存储在perf.data文件中。然后,使用perf report命令查看perf.data文件中的记录。这将显示CPU使用情况的完整列表,以及每个进程的CPU使用情况。
1# perf record -a -g -e cpu-clock sleep 5
2# perf report

评价此篇文章
