redpanda-data / redpanda

Redpanda is a streaming data platform for developers. Kafka API compatible. 10x faster. No ZooKeeper. No JVM!
https://redpanda.com
9.41k stars 577 forks source link

Compile with PGO + Bolt #7945

Open zamazan4ik opened 1 year ago

zamazan4ik commented 1 year ago

Who is this for and what problem do they have today?

For the end-users, who want to use even more performant Redpanda installations.

What are the success criteria?

Why is solving this problem impactful?

Could be useful for Redpanda performance.

Additional notes

Not sure about the current build defaults but enabling LTO (preferably "fat" version) would be beneficial too. Much more results about enabling PGO in different projects can be found here.

JIRA Link: CORE-1126

jcsp commented 1 year ago

I'm interested in whether you're suggesting this as an experiment, or if you tried it and found a measurable improvement?

zamazan4ik commented 1 year ago

Now I am suggesting it as an experiment. I have applied PGO multiple times to different software (like Clang, Vector, etc) with good results in performance, but didn't try yet to do it with Redpanda.

zamazan4ik commented 1 year ago

Oh, and I completely forgot to suggest trying to optimize compilers on CI for faster build times: https://github.com/scylladb/scylladb/issues/10985 . I have done the same trick in other projects with the same results.

emaxerrno commented 1 month ago

@zamazan4ik - probably using better CPU profiles than what we are using would give you the biggest bang for the buck.

zamazan4ik commented 1 month ago

I think these both ways can be used at the same time. Since my tests show pretty good performance improvements from enabling PGO for other software, I am still interested in optimizing Redpanda with PGO. However, the more ways to speed-up Redpanda - the better.