Evaluate using Profile-Guided Optimization (PGO) and Post-Link Optimization (PLO) #990
zamazan4ik
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi!
Recently I checked Profile-Guided Optimization (PGO) and Post-Link Optimization (PLO) improvements on multiple projects. The results are available here. According to the tests, these optimizations can help with achieving better performance in many cases for many applications: networking apps like HAproxy and Envoy, many databases, parsing utilities like Vector, etc. Since this, I think trying to optimize pgbouncer with PGO and PLO can be a good idea. Having a faster pgbouncer can help with serving more users per CPU core with pgbouncer and reduce the Total Cost of Ownership (TCO) for the solution. According to the graphics in the issue pgbouncer's CPU consumption can be quite huge sometimes.
I can suggest the following action points:
Testing Post-Link Optimization techniques (like LLVM BOLT) would be interesting too (Clang and Rustc already use BOLT as an addition to PGO) but I recommend starting from the usual PGO.
Examples of how PGO optimization is integrated into other projects:
configure
scriptI have some examples of how PGO information looks in the documentation:
Regarding LLVM BOLT integration, I have the following examples:
I hope these ideas could be interesting for someone from the pgbouncer community.
Beta Was this translation helpful? Give feedback.
All reactions