Red Hat Training

A Red Hat training course is available for RHEL 8

Chapter 6. Setting up PCP

Performance Co-Pilot (PCP) is a suite of tools, services, and libraries for monitoring, visualizing, storing, and analyzing system-level performance measurements.

This section describes how to install and enable PCP on your system.

6.1. Overview of PCP

You can add performance metrics using Python, Perl, C++, and C interfaces. Analysis tools can use the Python, C++, C client APIs directly, and rich web applications can explore all available performance data using a JSON interface.

You can analyze data patterns by comparing live results with archived data.

Features of PCP:

  • Light-weight distributed architecture, which is useful during the centralized analysis of complex systems.
  • It allows the monitoring and management of real-time data.
  • It allows logging and retrieval of historical data.

PCP has the following components:

  • The Performance Metric Collector Daemon (pmcd) collects performance data from the installed Performance Metric Domain Agents (pmda). PMDAs can be individually loaded or unloaded on the system and are controlled by the PMCD on the same host.
  • Various client tools, such as pminfo or pmstat, can retrieve, display, archive, and process this data on the same host or over the network.
  • The pcp package provides the command-line tools and underlying functionality.
  • The pcp-gui package provides the graphical application. Install the pcp-gui package by executing the yum install pcp-gui command. For more information, see Visually tracing PCP log archives with the PCP Charts application.

6.2. Installing and enabling PCP

To begin using PCP, install all the required packages and enable the PCP monitoring services.

This procedure describes how to install PCP using the pcp package. If you want to automate the PCP installation, install it using the pcp-zeroconf package. For more information on installing PCP by using pcp-zeroconf, see Setting up PCP with pcp-zeroconf.


  1. Install the pcp package:

    # yum install pcp
  2. Enable and start the pmcd service on the host machine:

    # systemctl enable pmcd
    # systemctl start pmcd

Verification steps

  • Verify if the pmcd process is running on the host:

    # pcp
    Performance Co-Pilot configuration on workstation:
    platform: Linux workstation 4.18.0-80.el8.x86_64 #1 SMP Wed Mar 13 12:02:46 UTC 2019 x86_64
    hardware: 12 cpus, 2 disks, 1 node, 36023MB RAM
    timezone: CEST-2
    services: pmcd
    pmcd: Version 4.3.0-1, 8 agents
    pmda: root pmcd proc xfs linux mmv kvm jbd2

Additional resources

6.3. Deploying a minimal PCP setup

The minimal PCP setup collects performance statistics on Red Hat Enterprise Linux. The setup involves adding the minimum number of packages on a production system needed to gather data for further analysis.

You can analyze the resulting tar.gz file and the archive of the pmlogger output using various PCP tools and compare them with other sources of performance information.



  1. Update the pmlogger configuration:

    # pmlogconf -r /var/lib/pcp/config/pmlogger/config.default
  2. Start the pmcd and pmlogger services:

    # systemctl start pmcd.service
    # systemctl start pmlogger.service
  3. Execute the required operations to record the performance data.
  4. Stop the pmcd and pmlogger services:

    # systemctl stop pmcd.service
    # systemctl stop pmlogger.service
  5. Save the output and save it to a tar.gz file named based on the host name and the current date and time:

    # cd /var/log/pcp/pmlogger/
    # tar -czf $(hostname).$(date +%F-%Hh%M).pcp.tar.gz $(hostname)

    Extract this file and analyze the data using PCP tools.

Additional resources

6.4. System services distributed with PCP

The following table describes roles of various system services, which are distributed with PCP.

Table 6.1. Roles of system services distributed with PCP




The Performance Metric Collector Daemon (PMCD).


The Performance Metrics Inference Engine.


The performance metrics logger.


Manages a collection of PCP daemons for a set of discovered local and remote hosts running the Performance Metric Collector Daemon (PMCD) according to zero or more configuration directories.


The Performance Metric Collector Daemon (PMCD) proxy server.

6.5. Tools distributed with PCP

The following table describes usage of various tools, which are distributed with PCP.

Table 6.2. Usage of tools distributed with PCP




Displays the current status of a Performance Co-Pilot installation.


Shows the system-level occupation of the most critical hardware resources from the performance point of view: CPU, memory, disk, and network.


Displays metrics of one system at a time. To display metrics of multiple systems, use --host option.


Plots performance metrics values available through the facilities of the Performance Co-Pilot.


Displays high-level system performance metrics by using the Performance Metrics Application Programming Interface (PMAPI).


Collects and displays system-level data, either from a live system or from a Performance Co-Pilot archive file.


Displays the values of configuration parameters.


Displays available Performance Co-Pilot debug control flags and their values.


Compares the average values for every metric in either one or two archives, in a given time window, for changes that are likely to be of interest when searching for performance regressions.


Displays control, metadata, index, and state information from a Performance Co-Pilot archive file.


Outputs the values of performance metrics collected live or from a Performance Co-Pilot archive.


Displays available Performance Co-Pilot error codes and their corresponding error messages.


Finds PCP services on the network.


An inference engine that periodically evaluates a set of arithmetic, logical, and rule expressions. The metrics are collected either from a live system, or from a Performance Co-Pilot archive file.


Displays or sets configurable pmie variables.


Displays information about performance metrics. The metrics are collected either from a live system, or from a Performance Co-Pilot archive file.


Reports I/O statistics for SCSI devices (by default) or device-mapper devices (with the -x dm option).


Interactively configures active pmlogger instances.


Identifies invalid data in a Performance Co-Pilot archive file.


Creates and modifies a pmlogger configuration file.


Verifies, modifies, or repairs the label of a Performance Co-Pilot archive file.


Calculates statistical information about performance metrics stored in a Performance Co-Pilot archive file.


Determines the availability of performance metrics.


Reports on selected, easily customizable, performance metrics values.


Allows access to a Performance Co-Pilot hosts through a firewall.


Periodically displays a brief summary of system performance.


Modifies the values of performance metrics.


Provides a command line interface to the trace Performance Metrics Domain Agent (PMDA).


Displays the current value of a performance metric.