Performance Co-Pilot (PCP) 是一种紧凑的评估和评估工具,用于收集各种服务器指标并检查当前和之前的操作数据。 它旨在利用现代 API 和用于扩展其功能的其他资源轻松定制。 Redhat 采用了 DStat 的许多最佳功能,并将它们与扩展其有用性的附加功能相结合,并创建了自己的更新版本,称为 Performance Co-Pilot。
PCP(或 Performance Co-Pilot)现在可以区分显示的指标与通过 PMAPI(或性能指标 API)收集的数据。 此功能允许程序员编写独特的函数来收集数据一次,然后在不同的请求中重用相同的操作。 这允许通过使用 PMAPI 调用而不是直接可视化源来抽象返回的数据,从而改进报告。
PCP 提取与 top、sar、iotop、iostat、iftop、vmstat、netstat 和 ifstat 相同的信息。 不幸的是,其中许多工具不能很好地协同工作,但 PCP 解决了这个问题。 它的插件框架还允许从单个服务器收集性能数据。 此外,PCP 使用客户端-服务器架构,允许它监控来自多个客户端的单个主机或来自单个客户端的多个主机。
安装
让我们从 安装 PCP.
红帽/CentOS
[root@host ~]# yum install -y pcp pcp-doc pcp-gui pcp-system-tools
Debian/Ubuntu
[root@host ~]# apt-get install pcp pcp-do pcp-gui pcp-system-tools
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libpcp-gui2 libpcp-import1 libpcp-mmv1 libpcp-pmda-perl libpcp-pmda3 libpcp-trace2 libpcp-web1 libpcp3 libpfm4 libqt5printsupport5 pcp-conf python3-pcp
Suggested packages:
libpcp-import-perl pcp-doc
The following NEW packages will be installed:
libpcp-gui2 libpcp-import1 libpcp-mmv1 libpcp-pmda-perl libpcp-pmda3 libpcp-trace2 libpcp-web1 libpcp3 libpfm4 libqt5printsupport5 pcp pcp-conf pcp-gui python3-pcp
0 upgraded, 14 newly installed, 0 to remove and 30 not upgraded.
Need to get 4,648 kB of archives.
After this operation, 18.1 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
…
…
…
Setting up python3-pcp (4.3.4-1build1) ...
Setting up pcp (4.3.4-1build1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/pmcd.service → /lib/systemd/system/pmcd.service.
Created symlink /etc/systemd/system/multi-user.target.wants/pmlogger.service → /lib/systemd/system/pmlogger.service.
Created symlink /etc/systemd/system/multi-user.target.wants/pmie.service → /lib/systemd/system/pmie.service.
Created symlink /etc/systemd/system/multi-user.target.wants/pmproxy.service → /lib/systemd/system/pmproxy.service.
Processing triggers for libc-bin (2.30-0ubuntu2) ...
Processing triggers for systemd (242-7ubuntu3) ...
Processing triggers for man-db (2.8.7-3) ...
Processing triggers for desktop-file-utils (0.24-1ubuntu1) ...
Processing triggers for mime-support (3.63ubuntu1) ...
Processing triggers for gnome-menus (3.32.0-1ubuntu1) ...
[root@host ~]#
吉特
[root@host ~]# git clone https://github.com/performancecopilot/pcp.git
cd pcp
[root@host ~]# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
[root@host ~]# make
[root@host ~]# make install
启用服务并启动守护进程
[root@host ~]# systemctl enable pmcd
Created symlink from /etc/systemd/system/multi-user.target.wants/pmcd.service to /usr/lib/systemd/system/pmcd.service.
[root@host ~]#
[root@host ~]# systemctl enable pmlogger
Created symlink from /etc/systemd/system/multi-user.target.wants/pmlogger.service to /usr/lib/systemd/system/pmlogger.service.
[root@host ~]#
[root@host ~]# systemctl start pmcd
[root@host ~]# systemctl start pmlogger
例子
系统信息 – 统计
[root@host ~]# pcp
Performance Co-Pilot configuration on host.bare-centos7.com:
platform: Linux host.test-centos7.com 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64
hardware: 2 cpus, 1 disk, 1 node, 1871MB RAM
timezone: EST+5
services: pmcd
pmcd: Version 4.3.2-1, 9 agents, 1 client
pmda: root pmcd proc pmproxy xfs linux mmv kvm jbd2
pmlogger: primary logger: /var/log/pcp/pmlogger/host.test-centos7.com/20191216.08.50
(使用 Ctrl+C 退出)
PCP顶
(使用 Ctrl+C 退出)
稳压器
[root@host ~]# pmiostat -t 2sec
# Device rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await %util
sda 0.00 20.46 0.00 5.99 0.00 97.82 16.333 0.040 6.75 0.00 6.75 1.40
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.000 0.000 0.00 0.00 0.00 0.00
sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.000 0.000 0.00 0.00 0.00 0.00
sda 0.00 12.96 0.00 5.98 0.00 67.81 11.333 0.034 5.75 0.00 5.75 1.20
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.000 0.000 0.00 0.00 0.00 0.00
sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.000 0.000 0.00 0.00 0.00 0.00
sda 0.00 22.92 0.00 7.48 0.00 143.52 19.200 0.043 5.80 0.00 5.80 1.79
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.000 0.000 0.00 0.00 0.00 0.00
sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.000 0.000 0.00 0.00 0.00 0.00
sda 0.00 18.44 0.00 5.98 0.00 89.70 15.000 0.034 5.75 0.00 5.75 1.79
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.000 0.000 0.00 0.00 0.00 0.00
sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.000 0.000 0.00 0.00 0.00 0.00
[root@host ~]#
pmstat
[root@host ~]# pmstat
@ Mon Dec 16 09:36:05 2019
loadavg memory swap io system cpu
1 min swpd free buff cache pi po bi bo in cs us sy id
0.57 120320 1616m 1395m 3826m 0 0 0 281 1005 1536 2 1 98
0.52 120320 1612m 1395m 3826m 0 0 0 746 938 1362 2 0 98
0.48 120320 1556m 1395m 3859m 0 0 0 361 4757 7986 19 3 78
0.44 120320 1563m 1395m 3840m 0 0 0 343 4139 6424 16 3 81
0.57 120320 1541m 1395m 3853m 0 0 0 471 5071 8033 23 4 73
0.52 120320 1555m 1395m 3846m 0 0 0 494 4384 7030 12 4 84
[root@host ~]#
五氯苯酚数据
pcp dstat 命令本质上与旧版本的 dstat 相似。 它使用以下选项:
五氯苯酚 [ pcp options ] 数据统计 [ -acdfghilmnpqrstvVy? ] [ -C cpus ] [ -D disks ] [ -I interrupts ] [ -N interfaces ] [ -o output-file ] [ -S swap-devices ] [ –bits ] [ –bw ] [ –color ] [ –float ] [ –integer ] [ –nocolor ] [ –noheaders ] [ –noupdate ] [ –list ] [ –pidfile pid-file ] [ — plugin ] [ –all-plugins ] [ delay [ count ]]
pcp dstat 命令的默认输出如下所示。
[root@host ~]# pcp dstat
You did not select any stats, using -cdngy by default.
----total-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai stl| read writ| recv send| in out | int csw
3 1 95 1 0| 0 244k| 972 1623 | 0 0 |1519 2235
3 1 96 0 0| 0 0 | 414 264 | 0 0 |1074 1393
2 0 97 1 0| 0 136k| 189 189 | 0 0 |1103 1640
2 1 96 0 0| 0 0 |6928 4328 | 0 0 |1341 1758
4 1 94 1 0| 0 176k| 444 700 | 0 0 |1496 2065
2 1 97 0 0| 0 12k| 209 275 | 0 0 | 999 1360
3 1 96 1 0| 0 120k|2375 2423 | 0 0 |1386 1973
2 1 97 307 0| 0 8190B| 0 0 | 0 0 |1106 1532
3 1 94 2 0| 0 900k| 358 547 | 0 0 |1492 2110
2 1 96 0 0| 0 0 | 531 1695 | 0 0 |1267 1882
7 7 85 1 0| 0 296k| 190 178 | 0 0 |3634 5890
几乎所有指标的完整视图实际上跨越了两个宽屏显示器。
性能指标域代理 (PMDA)
PCP 的默认安装为您的 cpu、文件系统、每个进程、网络、交换、内存、磁盘、中断、nfs/rpc 等提供了指标。 这些指标是使用平台 PMDA 处理的 – 特别是 Linux 中的 pmda_linux.so 文件。 Mac 和 Windows 也有相应的 pmda 文件。
PMDA 在 pcp 包中包括:
- apache – 监控 apache web 服务器统计信息
- cisco – 监控 Cisco 路由器统计信息
- dbping – 查询任何数据库,提取响应时间
- elasticsearch – 监控一个 elasticsearch 集群
- kvm – 监控基于内核的虚拟机统计信息
- mailq – 监控邮件队列
- memcache – 监控 memcache 服务器统计信息
- mmv – 从应用程序中导出内存映射值统计信息
- mounts – 跟踪挂载的文件系统
- mysql – 监控 MySQL 关系数据库
- oracle – 监控 Oracle 关系数据库
- postgres – 监控 PostGreSQL 关系数据库
- 进程 – 密切关注关键进程/守护进程
- roomtemp – 监控室温(需要合适的探头)
- rsyslog – 监控可靠的系统日志守护进程
- sendmail – 监控 sendmail 统计信息
- shping – ping 关键系统服务,提取响应时间
- 跟踪 – 用于检测任意应用程序,请参阅 pmtrace(1)
- txmon – 事务和 QOS 监控
- statsd – StatsD 协议数据收集器
- 样品 – 用于测试
- 简单的 – example src 代码,如果你想写一个新的 PMDA
- 微不足道的 – 新 PMDA 的更简单的 src 代码。
默认情况下,没有设置任何 PMDA。 您选择其中之一 许多 需要 PMDA,然后运行在相应 /var/lib/pcp/pmdas 文件夹中找到的安装脚本。
pmchart

打开视图

默认 SCSI 磁盘流量视图

默认实时 CPU 和平均负载视图

开始收集信息
要启用历史数据收集,请使用以下命令:
[root@host ~]# systemctl enable pmlogger
[root@host ~]# systemctl startpmlogger
pmlogger 的配置可以在 /etc/pcp/pmlogger 中找到。 收集数据的默认间隔为 1 分钟,存档位于 /var/log/pcp/pmlogger/hostname
.
插件
插件是原始 dstat 的重要组成部分,在进行这项重要工作时,Redhat 通过使用其 PMAPI 功能实现了此功能。 现在,显示的所有 PCP dstat 指标都来自配置文件中定义和概述的“插件”。 通过更容易为 PCP 的 dstat 生成和构建新插件,这提供了更大的优势。
导出信息
以前,dstat 只允许将数据导出到 CSV 文件。 随着 dstat 现在被集成到 PCP 中,dstat 现在能够将收集的数据导出为以下格式:
- pcp2elasticsearch
- pcp2石墨
- pcp2influxdb
- pcp2json
- pcp2spark
- pcp2xlsx
- pcp2xml
- pcp2zabbix
随着 dstat 和 PCP 的集成,利用 PCP 自己已有 20 年历史的存档格式的额外好处是提高了现在作为服务运行的“pmlogger”程序的可用性和功能。 当 PCP 客户端工具使用 PMAPI(如此 dstat 实现所做的那样)时,它还可以访问存储在存档中的指标,而无需自行实现功能。 这意味着即使是全新的 dstat 实现也可以显示以前收集的值,就好像它们是实时的一样,使用 PCP 标准标志来指定要显示的指标的时间范围。
图形输出
PCP 图形图表的工作方式类似于本地客户端程序,显示从本地主机、远程服务器或存档文件收集的数据。 提供了多种报告类型,包括“概览报告”,它提供了非常好的系统控制台类型视图。 概览中的图形非常实用且易于调查。
自定义小部件
您可以通过在 /src/app/config.js 文件中将“enableCustomWidgetFeature”设置修改为 true 来实现 PCP 中的 GUI 功能,然后重新构建。 接下来,如果您打开仪表板下拉菜单,然后从“自定义”部分下选择“自定义图表”或“自定义表格”,这将为您的仪表板生成一个全新的图表面板。
命令
以下是一些可用于 PCP 的命令的候选清单。 要查看所有可用选项的完整列表,请访问 性能副驾驶 主页。
[root@host ~]# man PCPIntro
[root@host ~]# man pcp
[root@host ~]# man pmrep
root@host ~]# man pmcd
root@host ~]# man pminfo
root@host ~]# man pmie
今天看到它在行动!
你有一个 Liquid Web 专用服务器,私人 Cloud 还是需要持续监控的 Liquid Web 服务器集群? 立即联系我们一位经验丰富的 Linux 系统管理员以获取更多信息。
如果您在设置此软件时遇到问题,请立即致电 800.580.4985 联系我们,或打开 聊天 或与我们联系,我们的一位知识渊博的技术人员将提供更多信息!