Red Hat Training

A Red Hat training course is available for RHEL 8

第 7 章 使用 pmlogger 记录性能数据

通过 PCP 工具,您可以记录性能指标值并在以后重播。这样,您可以进行回顾性性能分析。

使用 pmlogger 工具,您可以:

  • 在系统上创建所选指标的存档日志
  • 指定在系统上记录哪些指标,以及记录的频率

7.1. 使用 pmlogconf 修改 pmlogger 配置文件

pmlogger 服务运行时,PCP 会记录主机上的一组默认指标。

使用 pmlogconf 工具检查默认配置。如果 pmlogger 配置文件不存在,pmlogconf 会使用默认指标值创建该文件。

先决条件

流程

  1. 创建或修改 pmlogger 配置文件:

    # pmlogconf -r /var/lib/pcp/config/pmlogger/config.default
  2. 按照 pmlogconf 提示,启用或禁用相关性能指标组,并控制每个启用的组的日志记录间隔。

其它资源

7.2. 手动编辑 pmlogger 配置文件

要使用特定指标和给定间隔创建定制日志配置,请手动编辑 pmlogger 配置文件。默认的 pmlogger 配置文件是 /var/lib/pcp/config/pmlogger/config.default。配置文件指定主日志记录实例记录哪些指标。

在手动配置中,您可以:

  • 记录自动配置中未列出的指标。
  • 选择自定义日志记录频率。
  • 使用应用程序指标添加 PMDA

先决条件

流程

  • 打开并编辑 /var/lib/pcp/config/pmlogger/config.default 文件以添加特定的指标:

    # 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;

其它资源

7.3. 启用 pmlogger 服务

必须启动并启用 pmlogger 服务来记录本地机器上的指标值。

这个步骤描述了如何启用 pmlogger 服务。

先决条件

流程

  • 启动并启用 pmlogger 服务:

    # systemctl start pmlogger
    
    # systemctl enable pmlogger

验证步骤

  • 验证 pmlogger 服务是否已启用:

    # 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, 1 client
    pmda: root pmcd proc xfs linux mmv kvm jbd2
    pmlogger: primary logger: /var/log/pcp/pmlogger/workstation/20190827.15.54

其它资源

7.4. 为指标集合设置客户端系统

这个步骤描述了如何设置客户端系统,以便中央服务器可以从运行 PCP 的客户端收集指标。

先决条件

流程

  1. 安装 pcp-system-tools 软件包:

    # yum install pcp-system-tools
  2. pmcd 配置 IP 地址:

    # echo "-i 192.168.4.62" >>/etc/pcp/pmcd/pmcd.options

    192.168.4.62 替换为 IP 地址,客户端应侦听。

    默认情况下,pmcd 正在侦听 localhost。

  3. 将防火墙配置为永久添加公共 zone

    # firewall-cmd --permanent --zone=public --add-port=44321/tcp
    success
    
    # firewall-cmd --reload
    success
  4. 设置 SELinux 布尔值:

    # setsebool -P pcp_bind_all_unreserved_ports on
  5. 启用 pmcdpmlogger 服务:

    # systemctl enable pmcd pmlogger
    # systemctl restart pmcd pmlogger

验证步骤

  • 验证 pmcd 是否正确侦听配置的 IP 地址:

    # ss -tlp | grep 44321
    LISTEN   0   5     127.0.0.1:44321   0.0.0.0:*   users:(("pmcd",pid=151595,fd=6))
    LISTEN   0   5  192.168.4.62:44321   0.0.0.0:*   users:(("pmcd",pid=151595,fd=0))
    LISTEN   0   5         [::1]:44321      [::]:*   users:(("pmcd",pid=151595,fd=7))

其它资源

7.5. 设置中央服务器以收集数据

这个步骤描述了如何创建中央服务器从运行 PCP 的客户端收集指标。

流程

  1. 安装 pcp-system-tools 软件包:

    # yum install pcp-system-tools
  2. 使用以下内容创建 /etc/pcp/pmlogger/control.d/remote 文件:

    # DO NOT REMOVE OR EDIT THE FOLLOWING LINE
    $version=1.1
    
    192.168.4.13 n n PCP_LOG_DIR/pmlogger/rhel7u4a -r -T24h10m -c config.rhel7u4a
    192.168.4.14 n n PCP_LOG_DIR/pmlogger/rhel6u10a -r -T24h10m -c config.rhel6u10a
    192.168.4.62 n n PCP_LOG_DIR/pmlogger/rhel8u1a -r -T24h10m -c config.rhel8u1a

    使用客户端 IP 地址替换 192.168.4.13192.168.4.14192.168.4.62

  3. 启用 pmcdpmlogger 服务:

    # systemctl enable pmcd pmlogger
    # systemctl restart pmcd pmlogger

验证步骤

  • 确保您可以从每个目录中访问最新的归档文件:

    # for i in /var/log/pcp/pmlogger/rhel*/*.0; do pmdumplog -L $i; done
    Log Label (Log Format Version 2)
    Performance metrics from host rhel6u10a.local
      commencing Mon Nov 25 21:55:04.851 2019
      ending     Mon Nov 25 22:06:04.874 2019
    Archive timezone: JST-9
    PID for pmlogger: 24002
    Log Label (Log Format Version 2)
    Performance metrics from host rhel7u4a
      commencing Tue Nov 26 06:49:24.954 2019
      ending     Tue Nov 26 07:06:24.979 2019
    Archive timezone: CET-1
    PID for pmlogger: 10941
    [..]

    /var/log/pcp/pmlogger/ 目录中的归档文件可用于进一步分析和图表。

其它资源

7.6. 使用 pmdumptext 回放 PCP 日志存档

记录指标数据后,您可以重播 PCP 日志存档。要将日志导出到文本文件并将其导入到电子表格中,请使用 PCP 工具,如 pmdumptextpmreppmlogsummary

使用 pmdumptext 工具,您可以:

  • 查看日志文件
  • 解析所选 PCP 日志归档并将值导出到 ASCII 表
  • 通过在命令行中指定个别指标来提取整个存档日志或仅从日志中选择指标值

先决条件

流程

  • 显示指标上的数据:

    $ 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

    以上示例显示归档中以 5 秒间隔收集的 xfs.perdev.log 指标数据,并显示所有标头。

其它资源