---
title: Perf工具
description: "Perf工具是非常强大的Linux性能分析工具，可以通过该工具获得进程内的调用情况、资源消耗情况并查找分析热点函数。"
url: https://www.hikunpeng.com/document/detail/zh/perftuning/tuningtip/kunpengtuning_12_0008.html
sourcePath: /source/zh/perftuning/tuningtip/kunpengtuning_12_0008.html
indexId: 3bcc695fb3432b0ee13f5aa31301cd9249f0c6b46fa2aabd7b34a0e72655984858
---
# Perf工具

#### 介绍

Perf工具是非常强大的Linux性能分析工具，可以通过该工具获得进程内的调用情况、资源消耗情况并查找分析热点函数。

命令参考举例：

| 命令 | 说明 |
| --- | --- |
| perf top | 查看当前系统中的热点函数。 |
| perf sched record \-\- sleep 1 \-p $PID | 记录进程在1s内的调度事件。 |
| perf sched latency \-\-sort max | 查看上一步记录的结果，以调度延迟排序。 |


#### 安装方式

以CentOS为例，使用如下命令安装：

```
yum -y install perf
```


#### 使用方法

1. 通过perf top命令查找热点函数。
该命令统计各个函数在某个性能事件上的热度，默认显示CPU占用率，可以通过“-e”监控其它事件。

  - Overhead表示当前事件在全部事件中占的比例。
  - Shared Object表示当前事件生产者，如kernel、perf命令、C语言库函数等。
  - Symbol则表示热点事件对应的函数名称。
通过热点函数，我们可以找到消耗资源较多的行为，从而有针对性地进行优化。
2. 收集一段时间内的线程调用。
  perf sched record命令用于记录一段时间内进程调用情况。“-p”后接进程号，“sleep”后接统计时长，单位为秒。收集到的信息自动存放在当前目录下，文件名为perf.data。

3. 解析收集到的线程调度信息。
  perf sched latency命令可以解析当前目录下的perf.data文件。“-s”表示进行排序，后接参数“max”表示按照最大延迟时间大小排序。
