Performance¶
Resources¶
Getting fair/consistent results¶
- Disable turboboost
- Disable hyper threading
- Set scaling_governor to ‘performance’
- Set cpu affinity
- Set process priority
- Drop file system cache
- Disable address space randomization
Methodologies to discover bottlenecks¶
- TMAM: Top-Down performance analysis methodology:
Huge-pages¶
How to reliably allocate and use huge-pages in Linux:
- https://mazzo.li/posts/check-huge-page.html
- https://www.baeldung.com/linux/huge-pages-management
- https://www.lukas-barth.net/blog/linux-allocating-huge-pages/
Hardware effects¶
Kobzol/hardware-effects illustrates effects of the following hardware quirks:
- 4k aliasing
- bandwidth saturation
- branch misprediction
- branch target misprediction
- cache conflicts
- cache/memory hierarchy bandwidth
- data dependencies
- denormal floating point numbers
- DRAM refresh interval
- false sharing
- hardware prefetching
- hardware store elimination
- memory-bound program
- misaligned accesses
- non-temporal stores
- software prefetching
- store buffer capacity
- write combining