释放系统性能:Fedora和RHEL上PCP调优实用指南[译]
Performance Co-Pilot (PCP)是一个用于收集、监控和分析系统性能指标的强大框架。它包含在 Fedora 和 RHEL 的仓库中,允许管理员以最低配置收集各种数据。本指南将指导您如何调整PCP 的 pmlogger服务,以更好地满足您的需求——无论您是在调试性能问题,还是在受限的硬件上运行。
PCP的默认设置是否适合您的P用例?通常并非如此。虽然 PCP 的默认设置能够在数据粒度和开销之间取得平衡,但生产工作负载的差异很大。本文稍后将使用两个场景来演示一些有用的配置。
启动并运行 PCP
首先,安装 PCP 包:
1 | sudo dnf install -y pcp pcp-system-tools |
然后启用并启动核心服务:
1 | sudo systemctl enable --now pmcd.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 | ps aux | grep '[p]mlogger -h localhost' |
预期输出片段:
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 | ps aux| grep '[p]mlogger -h localhost' |
预期输出:
1 | 记录:3,间隔:0:01:00.000 |
管理数据保留:日志、大小和清理
PCP存档由类似 cron 的服务每日轮换。配置位于:
1 | cat /etc/sysconfig/pmlogger |
默认值:
1 | PCP_MAX_LOG_SIZE=100 |
- 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