Using benchmarks to determine the optimal configuration for application performance
Driven by Moore’s Law, CPU architectures have advanced rapidly over the last decade. We have moved from discussing server performance purely in terms of GHz to a discussion where parallelism and the number of cores and software threads have become more important to achieving optimal appl...ication performance.
As virtualization has become more pervasive, two frequent questions are:
1. What is the best way to use all available CPU resources?
2. How can we use benchmarks to determine the optimal configuration instead of having the simplistic view of using the amount of GHz and number of cores, particularly when comparing different architecture generations?
This paper looks into these challenges and also addresses the migration path of the virtual machine (VM) footprint re-evaluation during migration.
Overall performance changes
Over the last three to four years, CPU and server platform performance have increased dramatically. The Intel server platform has gone through a complete evolution, which has brought about significant changes and redesign of CPUs, memory subsystems, I/O subsystem, and graphics.
We have increased the CPU core count from two to 10 cores and reintroduced Intel® Hyper-Threading Technology (Intel® HT), which doubles the number of software threads per CPU core to a maximum of 20 in today’s highest-performing CPUs. The CPU execution pipeline has changed, instructions issued per clock cycle have increased, and new features such as turbo mode have been introduced.
The memory controller has been integrated into the CPU and the memory structure has changed, moving from Uniform Memory Access (UMA) architecture to Non-Uniform
Memory Access (NUMA) architecture.
Therefore, comparing older-generation CPUs and platform architectures is not an easy task. The difficulty increases with virtualization, where oversubscription of resources is now possible, heavily modifying non-virtualized behavior and increasing the difficulty of making a comparison.