-
Notifications
You must be signed in to change notification settings - Fork 3.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adjust vheap sizes for message handling processes on Erlang/OTP 27 #12208
Conversation
f08cdd2
to
f24b02c
Compare
64B messages (represented differently within OTP than binaries above 64B): Full results: |
My interpretation of the benchmarks can be summarized as: with this QQ process configuration the throughput becomes comparable, if not better (with smallest messages), on Erlang 27 but latency is worse, in particular the 99% percentile/max. I think it's a reasonable outcome and will allow us to support Erlang 27 in 4.0 without major regressions. |
d9e839f
to
bebd21d
Compare
bebd21d
to
295ff3a
Compare
773a3f9
to
3b7cdde
Compare
3b7cdde
to
bf6ad89
Compare
The forced push was a rebase. @mkuratczyk I assume this change is still relevant, correct? |
Yes, I think we can merge it. @kjnilsson anything else you wanted to do here? |
OTP 27 reset all assumptions on how the vm reacts to processes that buffer and process a lot of large binaries. Substantially increasing the vheap sizes for such process restores most of the same performance by allowing processes to hold more binary data before major garbage collections are triggered. This introduces a new module to capture process flag configurations. The new vheap sizes are only applied when running on OTP 27 or above.
bf6ad89
to
6a7f8d0
Compare
Another rebase. |
Adjust vheap sizes for message handling processes in OTP 27 (backport #12208)
OTP 27 reset all assumptions on how the vm reacts to processes that
buffer and process a lot of large binaries.
Substantially increasing the vheap sizes for such process restores
most of the same performance by allowing processes to hold more binary
data before major garbage collections are triggered.
This introduces a new module to capture process flag configurations.
The new vheap sizes are only applied when running on OTP 27 or
above.