<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 9, 2018 at 12:38 PM, Lukas Larsson <span dir="ltr"><<a href="mailto:lukas@erlang.org" target="_blank">lukas@erlang.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello!<br><div class="gmail_extra"><br><div class="gmail_quote"><span class="gmail-">On Thu, Mar 8, 2018 at 8:43 PM, pablo platt <span dir="ltr"><<a href="mailto:pablo.platt@gmail.com" target="_blank">pablo.platt@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div>Hello,<br><br></div><div>Updating with my test.<br><br></div>I've been using master in production for two days on 4 servers.<br></div>Each server has 4 vCPUs.<br>Each server handles about 10K UDP packets per second. Approx 1K incoming packets per second and 9K outgoing packets per second.<br><br></div>I didn't see any issues. Seems to work fine.<br></div></div></div></div></blockquote><div> </div></span><div>That's great! Thanks for testing it! </div><span class="gmail-"><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div></div>CPU load in OTP Master 21 increased compared to OTP 20 from 58% to 68%. Does this make sense?<br></div></div></div></blockquote><div><br></div></span><div>hmm, no not really. I would have expected it to decrease.</div><div><br></div><div>Would you mind helping me to figure out why the CPU usage has gone up?</div><div><br></div><div>To start with I'd like to have a look at the output of</div><div><br></div><div>1> msacc:start(30000), msacc:print().</div><div><br></div></div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div><div>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.</div><div><br></div><div>Also it would great if you could run a few perf commands to compare the systems.</div><div><br></div><div>Ideally it would be be best if you could recompile beam with the --build-id linker flag. i.e.</div><div><br></div><div>> ./configure LDLAGS="-Wl,--build-id"</div></div></div></div></blockquote><div><br>I'll try to compile with kerl:<br>export LDLAGS="-Wl,--build-id" && kerl build git <a href="https://github.com/erlang/otp">https://github.com/erlang/otp</a> 9bc4a096025254aed157e4753743be61ce1f7489 master<br><br></div><div>How can I verify that the flag was actually used?<br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>That way it is possible to use "perf archive"[1] to collect the symbols of beam.smp.</div><div><br></div><div>> sudo perf stat -d -p $BEAMPID -- sleep 30 2> stat.log</div><div>> sudo perf record -g -p $BEAMPID -- sleep 30</div><div>> sudo perf archive</div><div>> sudo tar czf $BEAMPID.tar.gz stat.log perf.data.tar.bz2 perf.data</div><div><br></div></div></div></div></blockquote><div><br></div><div>Can I do it on a dev machine with a smaller load or does it have to be on a real production server?<br></div><div>What's the effect of perf (and msacc) on a production system? When I tried to do erlang profiling in the past it crashed my server.<br> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div><div>and send me the tar.gz for OTP-20 and master.</div><div><br></div><div>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.</div><div><br></div><div>If you prefer to this off-list, we can do that as well.</div><div><br></div><div>Lukas</div><div><br></div><div>[1]: If the "perf archive" command does not work (which it doesn't on my machine), just download the script from here: <a href="https://elixir.bootlin.com/linux/v3.18/source/tools/perf/perf-archive.sh" target="_blank">https://elixir.bootlin.<wbr>com/linux/v3.18/source/tools/<wbr>perf/perf-archive.sh</a></div></div></div></div>
</blockquote></div><br></div></div>