Performance Co-Pilot ( PCP )是一个用于收集、监控和分析系统性能指标的强大框架。它包含在 Fedora 和 RHEL 的仓库中,允许管理员以最低配置收集各种数据。本指南将指导您如何调整PCP 的 pmlogger服务,以更好地满足您的需求——无论您是在调试性能问题,还是在受限的硬件上运行。

PCP的默认设置是否适合您的P用例?通常并非如此。虽然 PCP 的默认设置能够在数据粒度和开销之间取得平衡,但生产工作负载的差异很大。本文稍后将使用两个场景来演示一些有用的配置。

启动并运行 PCP

首先,安装 PCP 包:

$ sudo dnf install -y pcp pcp-system-tools

然后启用并启动核心服务:

$ sudo systemctl enable --now pmcd.service
$ sudo systemctl enable --now pmlogger.service

验证两个服务是否正在运行:

$ systemctl status pmcd pmlogger

了解 pmlogger 及其配置

PCP由两个主要成分组成:

  • *pmcd:*从各个代理收集实时性能指标。
  • *pmlogger:*随着时间的推移存档这些指标以供分析。

pmlogger的行为由*/etc/pcp/pmlogger/control。 d/下的文件控制。其中最相关的是local*,它包含控制日志记录行为的命令行选项。

示例配置:

$ cat /etc/pcp/pmlogger/control.d/local

你会看到如下一行:

LOCALHOSTNAME	y   n	PCP_ARCHIVE_DIR/LOCALHOSTNAME	-r -T24h10m -c config.default -v 100Mb

-t 10s标志定义日志记录间隔 - 在本例中为每 10 秒。

场景一:高频监测,深度分析

**用例:**调试生产服务器上的临时问题。
**目标:**将日志记录间隔从 10 秒更改为 1 秒。

编辑文件(示例中使用 nano 编辑器,请使用您选择的编辑器):

$ sudo nano /etc/pcp/pmlogger/control.d/local

将-t 10s更改为*-t 1s*。

重新启动记录器:

$ sudo systemctl reboot pmlogger.service

核实:

$ ps aux | grep '[p]mlogger -h localhost'
$ pminfo -f

预期输出片段:

记录:10,间隔:0:00:01. 000

场景二:受限系统的轻量级监控

**用例:**在小型虚拟机或物联网设备上进行监控。
**目标:**将日志记录间隔更改为每 60 秒一次。

编辑同一个文件:

$ sudo nano /etc/pcp/pmlogger/control.d/local

将-t 10s更改为*-t 60s*。

重新启动记录器:

$ sudo systemctl reboot pmlogger.service

确认:

$ ps aux| grep '[p]mlogger -h localhost'
$ pminfo -f

预期输出:

记录:3,间隔:0:01:00. 000

管理数据保留:日志、大小和清理

PCP存档由类似 cron 的服务每日轮换。配置位于:

$ cat /etc/sysconfig/pmlogger

默认值:

PCP_MAX_LOG_SIZE=100
PCP_MAX_LOG_VERSIONS=14
  • PCP_MAX_LOG_SIZE:档案总大小(以 MB 为单位)。
  • PCP_MAX_LOG_VERSIONS:每天要保留的日志数量。

**目标:**保存 30 天的日志。

编辑文件:

$ sudo nano /etc/sysconfig/pmlogger

改变:

PCP_MAX_LOG_VERSIONS=30

无需重启服务。更改将在下一个清理周期内应用。

最后的想法

PCP是一款灵活的强大工具。只需进行少量更改,即可将其从通用监控器转变为适合您工作负载的专用工具。无论您需要精确诊断还是长期资源跟踪,调整pmlogger都能让您掌控自如,信心满满。

因此,请继续 - 打开该配置文件并开始自定义系统的性能故事。

注:本文谨献给我的妻子 Rupali Suraj Patil,她每天都给予我启发。

[注] 原文地址:Unlocking system performance: A practical guide to tuning PCP on Fedora & RHEL