quarkus icon indicating copy to clipboard operation
quarkus copied to clipboard

Document tips for OS tuning for performance measurements

Open rsvoboda opened this issue 3 years ago • 3 comments

Description

I recently read a discussion on Zulip around performance measurements and OS tuning to limit interference.

It was pretty exciting so I went ahead and checked Quarkus documentation to learn a bit more. But I found nothing on that topic in Quarkus guides.

Please document some tips and best practices for OS tuning for more reliable performance measurements.

Implementation ideas

Introduce a dedicated guide or extend the https://quarkus.io/guides/performance-measure guide.

New content could be linked from https://github.com/quarkusio/quarkus/blob/main/TROUBLESHOOTING.md too.

Topics mentioned on Zulip chat:

  • using taskset/isolcpu
  • HT off, CPU governor disabled
  • no turbo boost and CPU frequency set to a concrete value
  • drop all OS page caches backed by files

rsvoboda avatar Oct 14 '22 11:10 rsvoboda

CC @franz1981 @johnaohara

rsvoboda avatar Oct 14 '22 11:10 rsvoboda

And I would add, copying the @galderz comments in the JIRA: averages probably are not the right tool for the job. @johnaohara any proposal? I was thinking something similar to https://github.com/openjdk/jmh/blob/99e9c19c80a0133c28f6532ef2b5776d5b8bd023/jmh-core/src/main/java/org/openjdk/jmh/util/AbstractStatistics.java#L30 with the idea of reporting score + error at a confidence interval. And JMH can perform single-shot (multi-fork) tests too, that doesn't have many samples: that seems quite similar use case

franz1981 avatar Oct 14 '22 12:10 franz1981

/cc @MichalMaler, @ebullient, @hmanwani-rh, @inoxx03, @michelle-purcell, @sheilamjones, @sunayna15

quarkus-bot[bot] avatar Oct 14 '22 15:10 quarkus-bot[bot]