mpstat 和 blktrace 深入介绍
目录标题
- **mpstat 深入介绍**
- **1. mpstat 简介**
- **2. 功能特点**
- **3. 常用语法**
- **4. 输出解释**
- **5. 使用案例**
- **blktrace 深入介绍**
- **1. blktrace 简介**
- **2. 功能特点**
- **3. 常用语法**
- **4. 输出解释**
- **5. 使用案例**
- **mpstat 和 blktrace 功能对比**
mpstat 深入介绍
1. mpstat 简介
mpstat
是 Multiprocessor Statistics 的缩写,是 Linux 系统中用于监控多核 CPU 性能的工具。它属于 sysstat
包的一部分,可以从 /proc/stat
文件中读取 CPU 使用信息,并提供每个 CPU 核心的详细统计信息。
2. 功能特点
- 实时监控:显示各个 CPU 核心的使用情况,包括用户态、内核态、空闲时间等。
- 支持多核:能够分别查看每个 CPU 核心的性能指标。
- 统计信息来源:数据来自于
/proc/stat
文件。
3. 常用语法
mpstat [-P {cpu | ALL}] [interval [count]]
-P {cpu | ALL}
:指定要监控的 CPU,cpu
为具体的 CPU 编号(如 0, 1 等),ALL
表示监控所有 CPU。interval
:相邻两次采样之间的时间间隔(以秒为单位)。count
:采样次数,必须与interval
一起使用。
4. 输出解释
mpstat
的输出通常包含以下几列:
%usr
:用户空间占用 CPU 的百分比。%nice
:改变过优先级的进程占用 CPU 的百分比。%sys
:内核空间占用 CPU 的百分比。%iowait
:等待 I/O 操作占用 CPU 的百分比。%irq
:处理硬件中断请求占用 CPU 的百分比。%soft
:处理软件中断请求占用 CPU 的百分比。%steal
:在虚拟化环境中,其他操作系统占用的 CPU 时间百分比。%guest
:运行虚拟处理器占用 CPU 的百分比。%gnice
:运行改变过优先级的虚拟处理器占用 CPU 的百分比。%idle
:CPU 空闲时间的百分比。
5. 使用案例
-
查看所有 CPU 的平均负载:
mpstat
显示从系统启动以来所有 CPU 的平均负载。
-
每隔 5 秒输出一次报告,总共输出 2 次:
mpstat 5 2
每 5 秒生成一个报告,总共生成 2 个报告。
-
查看特定 CPU(如 CPU0)的统计信息:
mpstat -P 0
仅显示 CPU0 的统计信息。
-
仅显示用户态和空闲态的 CPU 使用率:
mpstat -u -i
仅显示用户态和空闲态的 CPU 使用率。
blktrace 深入介绍
1. blktrace 简介
blktrace
是 Linux 系统中用于跟踪和监视磁盘 I/O 请求的工具。它能够提供详细的关于磁盘读写请求的信息,包括请求的发起时间、大小、类型、处理顺序等。
2. 功能特点
- 详细的 I/O 请求信息:包括读写进程名、进程号、执行时间、读写物理块号、块大小等。
- 内核层跟踪:属于内核 block layer,能够直接从内核中获取 I/O 请求的详细信息。
- 实时监控:可以实时监控 I/O 请求的生命周期。
3. 常用语法
blktrace -d <dev> -o <file>
-d <dev>
:指定要监控的设备(如/dev/sda
)。-o <file>
:指定输出文件的名字。
4. 输出解释
blktrace
生成的输出文件通常包括以下内容:
trace0
和trace1
:分别记录 CPU0 和 CPU1 的 I/O 请求信息。msg
:记录 I/O 请求的详细信息,包括请求的发起时间、大小、类型等。drop
:记录被丢弃的 I/O 请求信息。
5. 使用案例
-
实时查看 I/O 请求:
blktrace -d /dev/sda -o /tmp/blktrace.out
将 I/O 请求信息输出到
/tmp/blktrace.out
文件中。 -
生成采集文件并合并:
blktrace -d /dev/sda -o /tmp/blktrace.out blkparse -i /tmp/blktrace.out -o /tmp/blktrace.txt
使用
blkparse
工具将采集的二进制文件转换为可读的文本文件。 -
指定监控的动作:
blktrace -d /dev/sda -a 0x1 -o /tmp/blktrace.out
仅监控读操作(
0x1
表示读操作)。
mpstat 和 blktrace 功能对比
功能点 | mpstat | blktrace |
---|---|---|
监控对象 | CPU 性能 | 磁盘 I/O 性能 |
数据来源 | /proc/stat 文件 | 内核 block layer |
输出内容 | CPU 使用率(%usr、%sys、%iowait 等) | I/O 请求的详细信息(读写进程名、进程号、执行时间等) |
适用场景 | CPU 性能瓶颈分析 | 磁盘 I/O 性能瓶颈分析 |
实时性 | 实时监控 | 实时监控 |
安装依赖 | sysstat 包 | blktrace 工具集 |
通过 mpstat
和 blktrace
,可以分别对 CPU 和磁盘 I/O 性能进行深入分析,帮助定位和解决系统性能瓶颈。