Red Hat Training

A Red Hat training course is available for RHEL 8

第 9 章 使用 PCP 的 XFS 的性能分析

XFS PMDA 作为 pcp 软件包的一部分提供,并在安装过程中默认启用。它用于在 Performance Co-Pilot(PCP)中收集 XFS 文件系统的性能指标数据。

这部分论述了如何使用 PCP 分析 XFS 文件系统的性能。

9.1. 手动安装 XFS PMDA

如果 pcp 配置输出中没有列出 XFS PMDA,请手动安装 PMDA 代理。

这个步骤描述了如何手动安装 PMDA 代理。

先决条件

流程

  1. 进入 xfs 目录:

    # cd /var/lib/pcp/pmdas/xfs/
  2. 手动安装 XFS PMDA:

    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
  3. 通过为收集器输入 c、为监控器输入 mb 来选择所需的 PMDA 角色。PMDA 安装脚本提示您指定以下 PMDA 角色之一:

    • collector 角色允许在当前系统中收集性能指标
    • monitor 角色允许系统监控本地系统、远程系统或两者

      默认选项是 collectormonitor,它允许 XFS PMDA 在大部分情况下正常工作。

验证步骤

  • 验证 pmcd 进程是否在主机上运行,并在配置中列为 enabled:

    # pcp
    
    Performance Co-Pilot configuration on workstation:
    
    platform: Linux workstation 4.18.0-80.el8.x86_64 #1 SMP Wed Mar 13 12:02:46 UTC 2019 x86_64
    hardware: 12 cpus, 2 disks, 1 node, 36023MB RAM
    timezone: CEST-2
    services: pmcd
    pmcd: Version 4.3.0-1, 8 agents
    pmda: root pmcd proc xfs linux mmv kvm jbd2

其它资源

9.2. 使用 pminfo 检查 XFS 性能指标

PCP 可让 XFS PMDA 允许为每个挂载的 XFS 文件系统报告某些 XFS 指标。这样更易于查明特定挂载的文件系统问题并评估性能。

pminfo 命令为每个挂载的 XFS 文件系统提供每个设备的 XFS 指标。

这个过程显示 XFS PMDA 提供的所有可用指标的列表。

先决条件

流程

  • 显示 XFS PMDA 提供的所有可用指标列表:

    # pminfo xfs
  • 显示单个指标的信息。以下示例使用 pminfo 工具检查特定的 XFS readwrite 指标:

    • 显示 xfs.write_bytes 指标的简短描述:

      # pminfo --oneline xfs.write_bytes
      
      xfs.write_bytes [number of bytes written in XFS file system write operations]
    • 显示 xfs.read_bytes 指标的长描述:

      # pminfo --helptext 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 --fetch xfs.read_bytes
      
      xfs.read_bytes
          value 4891346238
    • 使用 pminfo 获取每个设备的 XFS 指标:

      # pminfo --fetch --oneline 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

其它资源

9.3. 使用 pmstore 重置 XFS 性能指标

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

这个步骤描述了如何使用 pmstore 工具重置 XFS 指标。

先决条件

流程

  1. 显示指标值:

    $ pminfo -f xfs.write
    
    xfs.write
        value 325262
  2. 重置所有 XFS 指标:

    # pmstore xfs.control.reset 1
    
    xfs.control.reset old value=0 new value=1

验证步骤

  • 在重置指标后查看信息:

    $ pminfo --fetch xfs.write
    
    xfs.write
        value 0

其它资源

9.4. XFS 的 PCP 指标组

下表描述了 XFS 的可用 PCP 指标组。

表 9.1. XFS 的指标组

指标组

提供的指标

xfs.*

常规 XFS 指标,包括读取和写入操作计数、读取和写入字节计数。与计数器一起清空、群集化和群集失败次数的内节点数。

xfs.allocs.*

xfs.alloc_btree.*

有关在文件系统中分配对象的指标范围,其中包括扩展数目和块创建/释放。分配树查找,并与从 btree 中的扩展记录创建和删除进行比较。

xfs.block_map.*

xfs.bmap_tree.*

指标包括块映射读/写和块删除的数量,用于插入、删除和查找的扩展列表操作。另外,用于从 blockmap 中比较、查找、插入和删除操作的操作计数器。

xfs.dir_ops.*

XFS 文件系统中的目录操作计数器,用于创建、条目删除、"getdent"操作计数.

xfs.transactions.*

元数据事务计数器包括同步和异步交易数量计数,以及空事务的数量。

xfs.inode_ops.*

针对操作系统在索引节点缓存中查找具有不同结果的 XFS 索引节点的次数,计数器.这些计数缓存命中、缓存未命中等。

xfs.log.*

xfs.log_tail.*

通过 XFS 文件符号链接写入的日志缓冲区数量计数器包括写入到磁盘的块数。日志清空和固定数量的指标。

xfs.xstrat.*

XFS flush deamon 清除出的文件数据的字节数,以及刷新到磁盘上连续和非相邻空间的缓冲区数量。

xfs.attr.*

所有 XFS 文件系统上的属性 get、设置、删除和列出操作的数量。

xfs.quota.*

XFS 文件系统的配额操作指标包括配额重新声明数量的计数器、配额缓存未命中、缓存命中和配额数据重新声明。

xfs.buffer.*

有关 XFS 缓冲区对象的指标范围。计数器包括请求的缓冲区调用数量、成功缓冲区锁定、等待的缓冲区锁定、failure_locks、failure_retries 和 buffer hits(查找页面时)。

xfs.btree.*

有关 XFS btree 操作的指标。

xfs.control.reset

用于重置 XFS 统计的指标计数器的配置指标。控制指标通过 pmstore 工具切换。

9.5. XFS 的每设备 PCP 指标组

下表描述了 XFS 的每设备 PCP 指标组的可用情况。

表 9.2. XFS 的每设备 PCP 指标组

指标组

提供的指标

xfs.perdev.*

常规 XFS 指标,包括读取和写入操作计数、读取和写入字节计数。与计数器一起清空、群集化和群集失败次数的内节点数。

xfs.perdev.allocs.*

xfs.perdev.alloc_btree.*

有关在文件系统中分配对象的指标范围,其中包括扩展数目和块创建/释放。分配树查找,并与从 btree 中的扩展记录创建和删除进行比较。

xfs.perdev.block_map.*

xfs.perdev.bmap_tree.*

指标包括块映射读/写和块删除的数量,用于插入、删除和查找的扩展列表操作。另外,用于从 blockmap 中比较、查找、插入和删除操作的操作计数器。

xfs.perdev.dir_ops.*

XFS 文件系统的目录操作计数器,用于创建、条目删除、"getdent"操作计数.

xfs.perdev.transactions.*

元数据事务计数器包括同步和异步交易数量计数,以及空事务的数量。

xfs.perdev.inode_ops.*

针对操作系统在索引节点缓存中查找具有不同结果的 XFS 索引节点的次数,计数器.这些计数缓存命中、缓存未命中等。

xfs.perdev.log.*

xfs.perdev.log_tail.*

通过 XFS fileytems 写入日志缓冲区数量的计数器包括写入到磁盘的块数。日志清空和固定数量的指标。

xfs.perdev.xstrat.*

XFS flush deamon 清除出的文件数据的字节数,以及刷新到磁盘上连续和非相邻空间的缓冲区数量。

xfs.perdev.attr.*

所有 XFS 文件系统上的属性 get、设置、删除和列出操作的数量。

xfs.perdev.quota.*

XFS 文件系统的配额操作指标包括配额重新声明数量的计数器、配额缓存未命中、缓存命中和配额数据重新声明。

xfs.perdev.buffer.*

有关 XFS 缓冲区对象的指标范围。计数器包括请求的缓冲区调用数量、成功缓冲区锁定、等待的缓冲区锁定、failure_locks、failure_retries 和 buffer hits(查找页面时)。

xfs.perdev.btree.*

有关 XFS btree 操作的指标。