# Performance Co-Pilot
for Mac OS X

Performance Co-Pilot (PCP) is a framework and services to support system-level performance monitoring and performance management.

PCP provides a unifying abstraction for all of the interesting performance data in a system, and allows client applications to easily retrieve and process any subset of that data using a single API.

A client-server architecture allows multiple clients to monitor the same host, and a single client to monitor multiple hosts (e.g. in a cluster). This enables centralized monitoring of distributed processing.

Integrated archive logging and replay so a client application can use the same API to process real-time data from a host or historical data from an archive.

The architecture and services of the base PCP infrastructure are especially attractive for those tackling the harder system-level performance problems. For example this may involve a transient performance degradation, or some complex interaction between resource demands on a single system, or those seeking centralized monitoring of distributed processing (e.g. in a cluster or webserver farm environment), or management of performance on large systems with lots of moving parts.

The open source release of PCP includes all of the PCP libraries, infrastructure and daemons, along with a Darwin agent that exports a broad range of performance data from 7.4.x (Mac OS X 10.4) onward. This includes coverage of activity in the areas of:

- CPU
- Disk
- Memory
- Swapping
- Network
- NFS
- RPC
- Filesystems

Other agents export performance data from:

- Apache
- Cisco routers
- Databases
- ElasticSearch
- Postfix
- Samba
- Web server activity logs
- ... and many more places.

For more information and details on how to contribute to the PCP project see the web pages at https://pcp.io/