Performance Co-Pilot (PCP) Data Sheet

Updated -

Performance Co-Pilot is a system level performance monitoring and management suite, particularly suited for use in enterprise environments. PCP has shipped and been fully supported by Red Hat since RHEL 6.6 and in many other distributions (e.g. Fedora since F15, Debian, Ubuntu, etc.). It's a stable, actively maintained and developed open source project, with a supportive community, see the PCP Home Page and the project page on GITHUB and the git repo.
PCP Architecture

  • PMDA - a Performance Metrics Domain Agent, i.e. a plugin agent responsible for a set of particular metrics
  • PMCD - the Performance Metrics Collection Daemon - the pmcd service daemon serves requests from clients by routing to PMDAs
  • pmval - a generic client that connections to PMCD and can fetch and display metrics (live mode). All clients can also replay logs (archive mode).
  • pmchart - a generic GUI client - displays live time-series charts and can also replay archived data
  • pmlogger - the pmlogger service daemon - also a client, it fetches metrics and saves them to performance data archive files for later replay by clients


  • Metrics coverage - PCP captures just about everything exported by the Linux /proc and /sys pseudo filesystems, including per-process data. PCP is easily extensible and has around 70 plugins available, e.g. Linux platform, Oracle, mmv (for Java/JVM), libvirt, Docker containers and many many others, with new agents being added in every release.
  • Namespace and metadata - PCP has a uniform hierarchical metrics namespace with metadata for all metrics - data type (integer/string/block/event), semantics (counter/instant/etc), scaling units (time/count/space dimensions), help text and so forth. Generic monitoring tools can use this meta-data to do appropriate scaling, formatting and rate conversion of metric data, which mostly eliminates the need for custom monitoring applications. See for example pmrep(1) and pmchart(1) and other tools. For users familiar with legacy tools such as sysstat, top and so forth, PCP includes front-end tools with similar usage, see How does Performance Co-Pilot (PCP) compare with sysstat and the Side-by-side comparison of PCP tools with legacy tools.
  • Distributed Operation and Archive capture - PCP can export live data over secure IPC channels and also has logger services to capture archives for offsite or retrospective analysis. In essence, PCP has complete separation of the performance data capture (live or archive capture) from it's replay (live local, live remote, or archive replay). All PCP monitoring tools can do both live monitoring and archive replay and share common command line options, see PCPINTRO(1). This allows users to query live data (local or remote hosts), as well as traverse historical data for statistical reduction over whatever time period and sampling interval is required. PCP archives are also automatically included in sos-reports.
  • APIs - PCP has shipped in RHEL since RHEL6.6 and is included in all versions of RHEL7. There are well documented, stable plugin and data-ingest libraries for developing new agents, and libraries for new monitoring tools. All APIs have C/C++, Python and Perl bindings. A Go binding is available too (search for PCP speed on github). There is also JSON support and a webapi for devops style javascript applications with support for Grafana, Vector and native web applications.
  • Tools - PCP boasts a large variety of tools, with many console tools compatible with legacy sysstat tools (e.g. iostat, pidstat, vmstat, mpstat, uptime, free, atop, numastat, etc), as well as many generic tools for data probing and scripting. See There are also GUI tools for advanced interactive analysis and report generation.
  • Security - PCP can be configured for localhost only (unix domain only with no inet domain sockets), or fully remote. When used for remote access, the PCP service daemons and libraries also support certificate based authentication with SSL encrypted IPC channels. A dedicated proxy daemon is also available for access thru firewalls.
  • Documentation - PCP has extensive documentation, including two books and numerous white papers, HOWTOs, KCS solutions and articles (such as this one), etc. See references listed below.
  • Support - PCP is fully supported in RHEL. You can open a case to get assistance from Red Hat support, or you can engage the community directly.


Knowledge Base Articles and Solutions

White Papers, Guide Books and Case Studies and Presentations

  • Component
  • pcp