Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.2. 使用 Performance Co-Pilot 对 XFS 文件系统性能分析

这部分论述了 PCP XFS 性能指标和使用方法。启动后,性能指标守护进程(PMCD)开始从已安装的 Performance Metric Domain Agents(PMDA)收集性能数据。PMDA 可以在系统上单独加载或卸载,并由同一主机上的 PMCD 控制。XFS PMDA 是默认 PCP 安装的一部分,用于在 PCP 中收集 XFS 文件系统的性能指标数据。

5.2.1. 使用 PCP 安装 XFS PMDA 来收集 XFS 数据

XFS PMDA 作为 pcp 软件包的一部分提供,并在安装过程中默认启用。要安装 PCP,请输入:
# yum install pcp
要在安装 pcppcp-gui 软件包后在主机机器上启用并启动 PMDA 服务,请使用以下命令:
# systemctl enable pmcd.service
# systemctl start pmcd.service
要查询 PCP 环境以验证 PMCD 进程是否在主机上运行,且 XFS PMDA 在配置中被列为 enabled,请输入:
# pcp

Performance Co-Pilot configuration on workstation:

platform: Linux workstation 3.10.0-123.20.1.el7.x86_64 #1 SMP Thu Jan
29 18:05:33 UTC 2015 x86_64
hardware: 2 cpus, 2 disks, 1 node, 2048MB RAM
timezone: BST-1
services pmcd
pmcd: Version 3.10.6-1, 7 agents
pmda: root pmcd proc xfs linux mmv jbd2

手动安装 XFS PMDA

如果 PCP 配置读取中没有列出 XFS PMDA,请手动安装 PMDA 代理。PMDA 安装脚本会提示您指定 PMDA 角色:收集器、监控器或两者。
  • collector 角色允许收集当前系统上的性能指标
  • monitor 角色允许系统监控本地系统、远程系统或两者。
默认选项是 collector 和 monitor,它允许 XFS PMDA 在大多数场景中正常工作。
要手动安装 XFS PMDA,请切换到 xfs 目录:
# cd /var/lib/pcp/pmdas/xfs/
xfs 目录中,输入:
xfs]# ./Install

You will need to choose an appropriate configuration for install of
the “xfs” Performance Metrics Domain Agent (PMDA).

  collector     collect performance statistics on this system
  monitor       allow this system to monitor local and/or remote systems
  both          collector and monitor configuration for this system

Please enter c(ollector) or m(onitor) or (both) [b]
Updating the Performance Metrics Name Space (PMNS) ...
Terminate PMDA if already installed ...
Updating the PMCD control file, and notifying PMCD ...
Waiting for pmcd to terminate ...
Starting pmcd ...
Check xfs metrics have appeared ... 149 metrics and 149 values

5.2.2. 配置和检查 XFS 性能指标

使用 pminfo 检查指标

安装 PCP 并启用了 XFS PMDA 后,在 第 5.2.1 节 “使用 PCP 安装 XFS PMDA 来收集 XFS 数据” 中提供了相关的说明,开始查看 PCP 和 XFS 的性能指标是使用 pminfo 工具,该工具显示有关可用性能指标的信息。命令显示 XFS PMDA 提供的所有可用指标的列表。
显示 XFS PMDA 提供的所有可用指标列表:
# pminfo xfs
使用以下选项显示所选指标的信息:
-t 指标
显示描述所选指标的一行帮助信息。
-t 指标
显示描述所选指标的更详细帮助文本。
-f 指标
显示与指标对应的性能值的当前读取。
您可以将 -t、-T-f 选项用于一组指标或单个指标。探测时,系统中的每个挂载的 XFS 文件系统都提供了大多数指标数据。
XFS 指标 具有不同的组,使每个不同的组都是来自 root XFS 指标的新的叶节点,使用点(.)作为分隔符。leaf 节点语义(dots)适用于所有 PCP 指标。有关每个组中可用的指标类型的概述,请参阅 表 A.3 “XFS 的 PCP 指标组”
另外,XFS 文档还包含有关监控 XFS 文件系统的部分: Chapter 13。XFS 监控.

例 5.1. 使用 pminfo 工具检查 XFS 读和写指标

显示描述 xfs.write_bytes 指标的一行帮助信息:
# pminfo -t xfs.write_bytes

xfs.write_bytes [number of bytes written in XFS file system write operations]
显示描述 xfs.read_bytes 指标的更多详细帮助文本:
# pminfo -T xfs.read_bytes

xfs.read_bytes
Help:
This is the number of bytes read via read(2) system calls to files in
XFS file systems. It can be used in conjunction with the read_calls
count to calculate the average size of the read operations to file in
XFS file systems.
获取与 xfs.read_bytes 指标对应的性能值的当前读取:
# pminfo -f xfs.read_bytes

xfs.read_bytes
    value 4891346238

使用 pmstore 配置指标

使用 PCP,您可以修改特定指标的值,特别是当指标充当控制变量时,如 xfs.control.reset 指标。要修改指标值,请使用 pmstore 工具。

例 5.2. 使用 pmstore 重置 xfs.control.reset Metric

本例演示了如何使用带有 xfs.control.reset 指标的 pmstore,将 XFS PMDA 的记录的计数器值重置为零。
$ pminfo -f xfs.write

xfs.write
    value 325262
# pmstore xfs.control.reset 1

xfs.control.reset old value=0 new value=1
$ pminfo -f xfs.write

xfs.write
    value 0

5.2.3. 检查每个文件系统中可用的 XFS 指标

从红帽企业 Linux 7.3 开始,PCP 可让 XFS PMDA 允许为每个挂载的 XFS 文件系统报告特定的 XFS 指标。这样更易于查明特定挂载的文件系统问题并评估性能。有关每个组群中每个文件系统中每个文件系统可用的指标类型的概述,请参阅 表 A.4 “每个设备的用于 XFS 的 PCP 指标组”

例 5.3. 使用 pminfo 获取每个Device XFS 指标

pminfo 命令提供每个设备 XFS 指标,为每个挂载的 XFS 文件系统提供实例值。
# pminfo -f -t xfs.perdev.read xfs.perdev.write

xfs.perdev.read [number of XFS file system read operations]
inst [0 or "loop1"] value 0
inst [0 or "loop2"] value 0

xfs.perdev.write [number of XFS file system write operations]
inst [0 or "loop1"] value 86
inst [0 or "loop2"] value 0

5.2.4. 使用 pmlogger 记录性能数据

PCP 允许您记录性能指标值,这些值可以在以后重播,用于回顾性性能分析。使用 pmlogger 工具在系统上创建所选指标的存档日志。
使用 pmlogger 时,您可以指定在系统上记录哪些指标,以及记录的频率。默认 pmlogger 配置文件为 /var/lib/pcp/config/pmlogger/config.default。配置文件指定主日志记录实例记录哪些指标。
要使用 pmlogger 在本地机器上记录指标值,请启动一个主日志记录实例:
# systemctl start pmlogger.service
# systemctl enable pmlogger.service
当启用 pmlogger 并设置了默认配置文件时,PCP 配置中会包含 pmlogger 行:
# pcp

Performance Co-Pilot configuration on workstation:

platform: Linux workstation 3.10.0-123.20.1.el7.x86_64 #1 SMP Thu Jan
[...]
pmlogger: primary logger:/var/log/pcp/pmlogger/workstation/20160820.10.15

使用 pmlogconf 修改 pmlogger 配置文件

pmlogger 服务运行时,PCP 会记录主机上一组默认指标。您可以使用 pmlogconf 工具检查默认配置,并根据需要启用 XFS 日志记录组。启用的重要 XFS 组包括 XFS 信息、XFS 数据和 日志 I/O 流量组
按照 pmlogconf 提示启用或禁用相关性能指标组,并控制每个启用的组的日志间隔。通过按 y (是)或 n (no)对提示符做出组选择。要使用 pmlogconf 创建或修改通用 PCP 归档日志记录器配置文件,请输入:
# pmlogconf -r /var/lib/pcp/config/pmlogger/config.default

手动修改 pmlogger 配置文件

您可以手动编辑 pmlogger 配置文件,并添加带有给定间隔的特定指标,以创建定制的日志记录配置。

例 5.4. 带有 XFS 指标的 pmlogger 配置文件

以下示例显示了 pmlogger config.default 文件的提取,并添加了一些特定的 XFS 指标。
# It is safe to make additions from here on ...
#

log mandatory on every 5 seconds {
    xfs.write
    xfs.write_bytes
    xfs.read
    xfs.read_bytes
}

log mandatory on every 10 seconds {
    xfs.allocs
    xfs.block_map
    xfs.transactions
    xfs.log

}

[access]
disallow * : all;
allow localhost : enquire;

取消 PCP 日志归档

记录指标数据后,您可以使用以下方法在系统中重放 PCP 日志存档:
  • 您可以将日志导出到文本文件,并使用 pmdumptextpmreppmlogsummary 等 PCP 实用程序将它们导入到电子表格中。
  • 您可以重播 PCP Charts 应用程序中的数据,并使用图表来视觉化重新观察数据以及系统的实时数据。请参阅 第 5.2.5 节 “使用 PCP Charts 进行视觉追踪”
您可以使用 pmdumptext 工具查看日志文件。使用 pmdumptext,您可以解析所选 PCP 日志归档并将值导出到 ASCII 表。pmdumptext 工具允许您转储整个归档日志,或者仅在命令行中指定单个指标从日志中选择指标值。

例 5.5. 显示特定的 XFS 指标日志信息

例如,显示存档中以 5 秒间隔收集的 xfs.perdev.log 指标的数据,并显示所有标头:
$ pmdumptext -t 5seconds -H -a 20170605 xfs.perdev.log.writes

Time local::xfs.perdev.log.writes["/dev/mapper/fedora-home"] local::xfs.perdev.log.writes["/dev/mapper/fedora-root"]
? 0.000 0.000
none count / second count / second
Mon Jun 5 12:28:45 ? ?
Mon Jun 5 12:28:50 0.000 0.000
Mon Jun 5 12:28:55 0.200 0.200
Mon Jun 5 12:29:00 6.800 1.000
如需更多信息,请参阅 pmdumptext(1) man page,它包括在 pcp-doc 软件包中。

5.2.5. 使用 PCP Charts 进行视觉追踪

要使用图形 PCP Charts 应用程序,安装 pcp-gui 软件包:
# yum install pcp-gui
您可以使用 PCP Charts 应用将性能指标值绘制为图形。PCP Charts 应用允许同时显示多个图表。指标来自一个或多个实时主机,提供备选选项,以将 PCP 日志存档的指标数据用作历史数据源。要从命令行启动 PCP 图表,请使用 pmchart 命令。
启动 PCP 图表后会出现 GUI:
PCP Charts 应用程序
PCP Charts 应用程序
pmtime 服务器设置位于底部。可以使用 startpause 按钮控制:
  • PCP 轮询指标数据的时间间隔
  • 历史数据指标的日期和时间
前往 FileNew Chart,通过指定主机名或地址来选择本地机器和远程机器的指标。然后,从远程主机选择性能指标。高级配置选项包括手动设置 chart 的轴值以及手动选择图表颜色的功能。
有多个选项可以获取镜像或记录 PCP Charts 中创建的视图:
  • FileExport 以保存当前视图的镜像。
  • RecordStart 启动记录。点 RecordStop 停止记录。停止记录后,记录的指标会被存档以供稍后查看。
您可以自定义 PCP Charts 接口,以多种方式显示性能指标中的数据,包括:
  • 行图表
  • 条形图
  • 利用率图
在 PCP Charts 中,主配置文件称为 视图,允许保存与一个或多个 chart 关联的元数据。这个元数据描述了所有 Chart 方面,包括使用的指标和 chart 列。您可以创建自定义 视图 配置,点 FileSave View 保存它,并稍后加载 视图 配置。有关查看 配置文件 及其语法的详情请参考 pmchart(1) 手册页。

例 5.6. PCP Charts View 配置中的堆栈图表图

PCP Charts 视图配置文件示例描述了一个堆栈图,显示读取和写入到给定 XFS 文件系统 loop1 的字节数。
#kmchart
version 1

chart title "Filesystem Throughput /loop1" style stacking antialiasing off
    plot legend "Read rate"   metric xfs.read_bytes   instance  "loop1"
    plot legend "Write rate"  metric xfs.write_bytes  instance  "loop1"