Harness Performance Engineering
Performance engineering is a discipline that focuses on the software and hardware architecture of systems with the goal of understanding, reaching, and maintaining their performance limits. In this talk, we will be using CPU performance issues to motivate the implementation of a performance harness framework, which has provided our team with the processes required to describe and improve the performance of our system. Specifically, the examples will motivate the implementation of such testing infrastructure, showing how it can help to resolve and anticipate problems when software and hardware changes are introduced to the system. We will cover the architecture of the harness, implementations of the harness in several environments, and focus on its application on uncovering issues at the CPU level. We will be detailing an investigation on increasing network throughput by tuning IRQ/RPS logical CPU allocation, tradeoffs of the tuning, and the use cases where it makes sense. We will also walk through modern CPU architectures and show how tuning the internal operation of the CPU can actually affect the performance of your application.