DStat 现在是 PCP – 性能副驾驶

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

pmchart

打开视图

PCP 图表 打开视图

默认 SCSI 磁盘流量视图

PCP 图表 SCSI 流量

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

实时 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 联系我们,或打开 聊天 或与我们联系,我们的一位知识渊博的技术人员将提供更多信息!