Performance Co-Pilot

Performance Co-Pilot - system-level performance analysis toolkit

Technologies
c, python, linux, javascript, redis
Topics
visualization, web development, performance, kernel, high performance computing
Performance Co-Pilot - system-level performance analysis toolkit

The Performance Co-Pilot is a toolkit designed for monitoring and managing system-level performance. These services are distributed and scalable to accommodate very complex system configurations and performance problems.

PCP supports many different platforms, including (but not limited to) Linux, Mac OS X, Solaris and Windows. From a high-level PCP can be considered to contain two classes of software utility:

PCP Collectors

These are the parts of PCP that collect and extract performance data from various sources, e.g. the operating system kernel.

PCP Monitors

These are the parts of PCP that display data collected from hosts (or archives) that have the PCP Collector installed. Many monitor tools are available as part of the core PCP release, while other (typically graphical) monitoring tools are available separately in the PCP GUI or PCP WebApp packages.

The PCP architecture is distributed in the sense that any PCP tool may be executing remotely. On the host (or hosts) being monitored, each domain of performance metrics, whether the kernel, a service layer, a database management system, a web server, an application, etc. requires a Performance Metrics Domain Agent (PMDA) which is responsible for collecting performance measurements from that domain. All PMDAs are controlled by the Performance Metrics Collector Daemon (PMCD) on the same host.

Client applications (the monitoring tools) connect to PMCD, which acts as a router for requests, by forwarding requests to the appropriate PMDA and returning the responses to the clients. Clients may also access performance data from a PCP archive for retrospective analysis.

2018 Program

Successful Projects

Contributor
Parth Verma
Mentor
tallpsmith, Nathan Scott
Organization
Performance Co-Pilot
Mac OS X PCP Installer
The proposal explains how the project "Mac OS X PCP Installer" will be completed in the required duration with all the dependencies, requirements and...
Contributor
Andreas Gerstmayr
Mentor
Martin Spier, Marko Myllynen
Organization
Performance Co-Pilot
Extending BCC support for Performance Co-Pilot and Vector
BCC (BPF Compiler Collection) is a toolkit for efficient kernel tracing using eBPF (extended Berkeley Packet Filters). This project extends the...
Contributor
Guillem Lopez Paradis
Mentor
Nathan Scott, Suyash, Ryan Doyle
Organization
Performance Co-Pilot
Metadata Label Support for instrumented Applications
This project will explore extending a new feature for the Performance Co-Pilot (PCP). PCP is an open source framework at the system level that...
Contributor
CVN Prajwal
Mentor
Lukas Berk, Nathan Scott
Organization
Performance Co-Pilot
RESP (Redis) support in pmproxy
So as to handle huge volumes of data generated due to distributed and scalable nature of PCP, Redis an in-memory NoSQL data cache is being used in...
Contributor
Andrii Dehtiariov
Mentor
Nathan Scott
Organization
Performance Co-Pilot
PCP Windows Installer
The general goal of this project is to provide perfect user experience for users of Performance Co-Pilot on Windows. Now Windows port of Performance...