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

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

启动并运行 PCP

首先,安装 PCP 包:

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

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

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

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

1
$ systemctl status pmcd pmlogger

了解 pmlogger 及其配置

PCP由两个主要成分组成:

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

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

示例配置:

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

你会看到如下一行:

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

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

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

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

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

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

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

重新启动记录器:

1
$ sudo systemctl reboot pmlogger.service

核实:

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

预期输出片段:

1
记录:10,间隔:0:00:01.000

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

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

编辑同一个文件:

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

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

重新启动记录器:

1
$ sudo systemctl reboot pmlogger.service

确认:

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

预期输出:

1
记录:3,间隔:0:01:00.000

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

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

1
$ cat /etc/sysconfig/pmlogger

默认值:

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

目标:保存 30 天的日志。

编辑文件:

1
$ sudo nano /etc/sysconfig/pmlogger

改变:

1
PCP_MAX_LOG_VERSIONS=30

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

最后的想法

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

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

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

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