在Ubuntu和CentOS中安装和使用perf

时间:2020-02-23 14:39:21  来源:igfitidea点击:

性能是系统管理最复杂的部分之一。
每当我们尝试调查糟糕的性能或者高工作量原因的源时,我们需要正确的工具来执行此操作。

perf是其中一个工具。
它是Linux的性能计数器,我们可以使用它来收集有关系统性能的数据。

我们将看到如何在Ubuntu和CentOS上安装它,并将进行基本命令使用的小型演练。

在Ubuntu上安装perf

Perf是Ubuntu中包"Linux-Tools"包的一部分,它与使用APT的任何其他包一样安装。
只需确保更新来源。

sudo apt update

首先,安装Package Linux-Tools-Chalm:

sudo apt install linux-tools-common

Linux工具常用安装

接下来,我们需要为运行内核提供特定的包。
要获取内核的确切版本,请使用以下命令:

uname -r

我们将获得确切的内核版本。

我们可以安装特定的Linux-Tools包,或者如果内核没有特定版本的包,则可以使用Linux-Tools-Generic包。
但这可能无法按预期工作。
作为一个拇指的规则,如果Linux-Tools包与运行不匹配(非常重要!运行,而不是已安装的)版本的Linux内核,则Perf将无法正常工作或者不起作用或者不起作用。

在CentOS上安装PEF

像往常一样,封装名称从CentOS到Ubuntu不同,但程序基本相同,首次更新包信息:

yum update

有一个直接的包,将触发CentOS中的所有依赖项。

yum install perf

perf命令的基本用法

让我们看看如何使用perf的一些基本命令。
Perf的最基本使用当然是帮助页面,以"帮助"标志查看命令摘要

Perf使用摘要

根据系统配置,可能会受到安全策略的一些命令可能限制。
要禁用这些政策只是使用:

echo 0 > /proc/sys/kernel/perf_event_paranoid

有两种大组命令:运行在实时系统和通过性能记录中运行的命令运行的命令。

在现场系统上的命令

perf list [category]

上面的命令列出了系统中的所有可用事件类型。
这是一个很长的列表,具体取决于系统配置,它将被少量/更多软件包。
如果提供类别值,则将显示此类别的事件。

可用类别是:HW | SW | Cache | TraCePoint | PMU | Event_Glob

可用的软件事件

perf bench <category> <benchmark>

上面的命令在系统上制作多个基准。
它们在不同的类别(SCHE,MEM,NUMA,FUTEX,ALL)中分为分割,每个类别都有不同的基准列表。

如果要检查所有内存速度测试,请使用以下命令:

perf bench mem all

PERP内存基准结果

perf stat <command>

上面的命令将返回性能统计信息。

perf stat执行的结果

perf top

这将显示系统配置文件的实时分析

perf record命令

我们可以使用以下命令行记录我们执行的任何命令的性能配置文件:

perf record [options]

这将产生原始绩效寄存器记录。
此记录是多么深,取决于系统的安装。
我们可能需要调试或者DEV包来获取我们可能获得的所有分析数据。
还有很多标志将使我们能够控制将如何划分的内容,如何保存,以及将频率均匀。

有一次性能记录后,有几个命令用来采用此数据,最简单的是如下:

perf report -i <perf file> [options]

关于LS -LAR命令的perf报告结果

这将生成绩效文件的报告。
我们可以选择如何分割或者排序数据或者在报告中进行哪些数据。

perf diff <datafile 1> <datafile 2> …

这将允许我们比较两个执行,例如,如果我们想知道如何在更改参数后如何运行的参数与基本执行相比。

perf lock -I <perf file>

这将分析先前录制的性能文件中的所有锁定事件。

perf mem -t <Type> [ record <command> | report ]

这将从记录中记录或者报告,在所选类型的内存访问上进行分析。

perf timechart

这将进行以前录制的分析的执行时间图。

通过我们手中的所有这些工具,我们可以开始检查服务器中发生的内容,我们可以开始执行执行的配置文件来测试不同的配置