What does scheduler/aux mean in msacc?

Fernando Benavides elbrujohalcon@REDACTED
Fri Jul 3 16:27:20 CEST 2020


Hi Lukas,

Thanks for the tip! We actually use those extended stats from time to time
to profile our systems but I don't have them turned on in the machines I'm
using now. In any case, hey might tell me which specific parts of the
emulator the scheduler is spending less time on, but… they won't tell me
what extra auxiliary tasks it is handling, right?

I'll run a test with extended microaccounting, probably next week, but do
you know a way to figure out what the extra auxiliary jobs that my
scheduler is running are?

Cheers!


On Fri, Jul 3, 2020 at 4:22 PM Lukas Larsson <lukas@REDACTED> wrote:

> Hello,
>
> On Fri, Jul 3, 2020 at 4:14 PM Fernando Benavides <elbrujohalcon@REDACTED>
> wrote:
>
>> Hi Erlangers,
>>
>> It's me again… still trying to understand why my system behaves worse in
>> OTP22 than OTP21.
>> The last thing I tried was running MicroStateAccounting
>> <http://erlang.org/doc/man/msacc.html> on it and the results showed
>> something *odd*…
>>
>> These are two of my summaries for OTP21:
>> Stats per type:
>>         Thread      *aux* check_io *emulator*       gc    other     port
>>    sleep
>>          async    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>>  100.00%
>>            aux    0.23%    0.06%    0.00%    0.00%    0.09%    0.00%
>> 99.62%
>> dirty_cpu_sche    0.00%    0.00%    0.01%    0.20%    0.00%    0.00%
>> 99.79%
>> dirty_io_sched    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>>  100.00%
>>           poll    0.00%    0.58%    0.00%    0.00%    0.00%    0.00%
>> 99.42%
>>      scheduler    *2.05%*    0.56%   *71.29%*   13.25%    3.00%    1.89%
>>    7.96%
>> ok
>>
>> Stats per type:
>>          async    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>>  100.00%
>>            aux    0.23%    0.07%    0.00%    0.00%    0.08%    0.00%
>> 99.62%
>> dirty_cpu_sche    0.00%    0.00%    0.01%    0.29%    0.00%    0.00%
>> 99.70%
>> dirty_io_sched    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>>  100.00%
>>           poll    0.00%    0.61%    0.00%    0.00%    0.00%    0.00%
>> 99.39%
>>      *scheduler*    *2.26%*    0.56%   *68.70%*   12.69%    3.42%
>>  1.89%   10.48%
>> ok
>>
>> These are the corresponding two summaries for OTP22 (same period of time,
>> same code, running the same things):
>> Stats per type:
>>         Thread      *aux* check_io *emulator*       gc    other     port
>>    sleep
>>          async    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>>  100.00%
>>            aux    0.49%    0.06%    0.00%    0.00%    0.28%    0.00%
>> 99.16%
>> dirty_cpu_sche    0.00%    0.00%    0.00%    0.19%    0.00%    0.00%
>> 99.80%
>> dirty_io_sched    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 99.99%
>>           poll    0.00%    0.53%    0.00%    0.00%    0.00%    0.00%
>> 99.47%
>>      *scheduler*    *6.26%*    0.52%   *63.83%*   14.41%    3.05%
>>  1.72%   10.20%
>> ok
>>
>> Stats per type:
>>          async    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>>  100.00%
>>            aux    0.39%    0.07%    0.00%    0.00%    0.18%    0.00%
>> 99.36%
>> dirty_cpu_sche    0.00%    0.00%    0.00%    0.22%    0.00%    0.00%
>> 99.78%
>> dirty_io_sched    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 99.99%
>>           poll    0.00%    0.51%    0.00%    0.00%    0.00%    0.00%
>> 99.49%
>>      *scheduler*    *6.97%*    0.54%   *63.88%*   13.73%    3.19%
>>  1.74%    9.96%
>> ok
>>
>> I highlighted the strange/different parts there, but in a nutshell:
>> The scheduler is spending more time *handling **auxiliary jobs *and less
>> time *executing Erlang processes *(for context
>> <http://erlang.org/doc/man/erlang.html#statistics_microstate_accounting>
>> ).
>> Can anybody give me a clue as to what to check next? How can I determine
>> what are those *auxiliary jobs* that the scheduler is working on now?
>>
>>
> You can enable more msacc stats by turning on extra states. This is a
> compile-time flag that you pass to configure: ./configure
> --with-microstate-accounting=extra
>
> My guess would be that the extra time ends up in the alloc state, which
> means that it for some reason extra memory allocation is happening which is
> slowing down the system.
>
> Lukas
>
>
>> Thanks in advance :)
>>
>>
>> --
>>
>> <https://about.me/elbrujohalcon?promo=email_sig&utm_source=product&utm_medium=email_sig&utm_campaign=gmail_api&utm_content=thumb>
>> Brujo Benavides
>> about.me/elbrujohalcon
>> <https://about.me/elbrujohalcon?promo=email_sig&utm_source=product&utm_medium=email_sig&utm_campaign=gmail_api&utm_content=thumb>
>>
>

-- 
<https://about.me/elbrujohalcon?promo=email_sig&utm_source=product&utm_medium=email_sig&utm_campaign=gmail_api&utm_content=thumb>
Brujo Benavides
about.me/elbrujohalcon
<https://about.me/elbrujohalcon?promo=email_sig&utm_source=product&utm_medium=email_sig&utm_campaign=gmail_api&utm_content=thumb>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20200703/6ced0d90/attachment.htm>


More information about the erlang-questions mailing list