<div dir="ltr">Hello!<div><br></div><div>We have a system which uses only 20—25% of available CPU. After that we see:</div><div>  * increased run_queue</div><div>  * increased scheduler active time (from erlang:statistics(scheduler_wall_time))</div><div>  * decreased CPU usage</div><div><br></div><div>At first there were some problems visible with lcnt, but now (after fixes) there aren't.</div><div><br></div><div></div><div>While the system is in troubled state, msacc shows in cumulative scheduler stats:</div><div>  * 19.3% alloc</div><div>  * 19.3% gc</div><div>  * 25.3% ets</div><div>  * 12.3% emulator</div><div>  * 10.0% bif</div><div>  * (other times are quite low)</div><div><br></div><div>The system is 2x 10-core Xeon E5-2660 (with hyperthreading), so we have 40 schedulers there.</div><div>We use OTP 19.0 with +MBas aoffcaobf +MBacul 0</div><div><br></div><div>Switching scheduler binding from unbound (no option) to default (thread_no_node_processor_spread according to documentation) sligtly increases the throughput, but the alloc/gc/ets times are still very high.</div><div><br></div><div>How do we inspect high alloc/gc scheduler times?</div><div>Is there a way to select the most suitable allocation strategies without bruteforcing every option on every allocator type?</div><div>Maybe we are missing something? Any advice?</div><div><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><font face="'courier new', monospace">Danil Zagoskin | <a href="mailto:z@gosk.in" target="_blank">z@gosk.in</a></font></div></div></div></div></div>