[erlang-questions] How to test multi-pollset?

Lukas Larsson lukas@REDACTED
Fri Mar 9 11:38:17 CET 2018


On Thu, Mar 8, 2018 at 8:43 PM, pablo platt <pablo.platt@REDACTED> wrote:

> Hello,
> Updating with my test.
> I've been using master in production for two days on 4 servers.
> Each server has 4 vCPUs.
> Each server handles about 10K UDP packets per second. Approx 1K incoming
> packets per second and 9K outgoing packets per second.
> I didn't see any issues. Seems to work fine.

That's great! Thanks for testing it!

CPU load in OTP Master 21 increased compared to OTP 20 from 58% to 68%.
> Does this make sense?

hmm, no not really. I would have expected it to decrease.

Would you mind helping me to figure out why the CPU usage has gone up?

To start with I'd like to have a look at the output of

1> msacc:start(30000), msacc:print().

for both versions in the Erlang shell. Using this I hope to be able to
narrow down where the extra CPU time is being spent.

Also it would great if you could run a few perf commands to compare the

Ideally it would be be best if you could recompile beam with the --build-id
linker flag. i.e.

> ./configure LDLAGS="-Wl,--build-id"

That way it is possible to use "perf archive"[1] to collect the symbols of

> sudo perf stat -d -p $BEAMPID -- sleep 30 2> stat.log
> sudo perf record -g -p $BEAMPID -- sleep 30
> sudo perf archive
> sudo tar czf $BEAMPID.tar.gz stat.log perf.data.tar.bz2 perf.data

and send me the tar.gz for OTP-20 and master.

If you cannot re-compile erts with --build-id, then just do "sudo perf
report" and send me a screenshot of the tools shows you.

If you prefer to this off-list, we can do that as well.


[1]: If the "perf archive" command does not work (which it doesn't on my
machine), just download the script from here:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20180309/bd0365ff/attachment.htm>

More information about the erlang-questions mailing list