I am planning to evolve the performance tools that I had written for FreeBSD in 2005.  (This project ended up becoming the de facto performance measurement toolkit in FreeBSD.)

My goals for the revised implementation are:

  • To improve its portability to other operating system kernels — porting it one more BSD system, and if possible, to a modern micro-kernel.
  • To support for modern hardware performance monitoring features (this needs the programming API to be changed).
  • To improve the testability of the project.
  • To improve its interoperability with existing visualization tools.
  • To allow the performance of distributed systems to be analyzed with ease.
  • To use an ‘RFC’-like or ‘PEP’-like process to guide the evolution of the tools.
  • To offer users and implementors appropriately scaffolded documentation (see Cameron Shorter, 2018).

In addition, the project involves reimagining how we approach performance debugging of distributed systems: the new system would allow users to formulate ‘performance assertions’ about their distributed system’s behavior that would execute user-specified actions when they trigger.  So debugging performance issues would involve working through a series of hypotheses about system behavior, till the root cause of a performance loss is identified and addressed.

Presentation

Link to the presentation (PDF): An Invitation to Collaborate (2023-11-17).