在Ubuntu和CentOS中安装和使用perf
性能是系统管理最复杂的部分之一。
每当我们尝试调查糟糕的性能或者高工作量原因的源时,我们需要正确的工具来执行此操作。
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
这将进行以前录制的分析的执行时间图。
通过我们手中的所有这些工具,我们可以开始检查服务器中发生的内容,我们可以开始执行执行的配置文件来测试不同的配置