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’/‘PEP’-like process to guide the evolution of the tools.
  • To offer users and implementors appropriately scaffolded documentation (see Cameron Shorter, 2018).

At a deeper level, 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.  These assertions would run user-specified actions when they trigger.

Debugging performance issues in this new system would involve repeatedly formulating, testing, and refining hypotheses about the system’s behavior — till the root cause of a performance loss is found and addressed.

Presentation

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