[erlang-questions] msacc and dirty scheduler

Lukas Larsson lukas@REDACTED
Wed Nov 14 15:33:35 CET 2018


Hello!

It is most likely the GC that is using the dirty cpu scheduler.

Also, there are bugs in the microstate accounting fixed in OTP-21 that I
think still exists in pre OTP-20 versions that caused dirty schedulers to
report incorrect statistics. The printout looks very similar to a bug where
sleep was accredited to the emulator state.

Lukas

On Wed, Nov 14, 2018 at 3:18 PM Alexander Petrovsky <askjuise@REDACTED>
wrote:

> Hello!
>
> I see the follow debug info, and I would to know, which process and which
> code utilize only one dirty scheduler? How I can find out it?
>
> > msacc:start(1000), msacc:print(), msacc:stop().
>> Average thread real-time    : 1000886 us
>> Accumulated system run-time : 3440871 us
>> Average scheduler run-time  :  615277 us
>>         Thread      aux check_io emulator       gc    other     port
>> sleep
>> Stats per thread:
>>      async( 0)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async( 1)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async( 2)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async( 3)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async( 4)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async( 5)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async( 6)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async( 7)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async( 8)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async( 9)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(10)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(11)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(12)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(13)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(14)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(15)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(16)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(17)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(18)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(19)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(20)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(21)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(22)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(23)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(24)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(25)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(26)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(27)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(28)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      async(29)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>        aux( 1)    0.13%    0.00%    0.00%    0.00%    8.69%    0.00%
>>  91.18%
>> dirty_cpu_( 1)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>> dirty_cpu_( 2)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>> dirty_cpu_( 3)    0.00%    0.00%   89.04%    0.02%    0.00%    0.00%
>>  10.94%
>> dirty_cpu_( 4)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>> dirty_io_s( 1)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>> dirty_io_s( 2)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>> dirty_io_s( 3)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>> dirty_io_s( 4)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>> dirty_io_s( 5)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>> dirty_io_s( 6)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>> dirty_io_s( 7)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>> dirty_io_s( 8)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>> dirty_io_s( 9)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>> dirty_io_s(10)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>  scheduler( 1)    1.45%    1.61%   37.45%    6.11%   15.31%    1.35%
>>  36.72%
>>  scheduler( 2)    1.33%    1.24%   35.30%    6.39%   16.21%    1.33%
>>  38.19%
>>  scheduler( 3)    1.35%    1.50%   33.85%    5.50%   18.19%    1.48%
>>  38.13%
>>  scheduler( 4)    1.59%    1.35%   31.49%    5.14%   18.29%    1.18%
>>  40.95%
>> Stats per type:
>>          async    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>            aux    0.13%    0.00%    0.00%    0.00%    8.69%    0.00%
>>  91.18%
>> dirty_cpu_sche    0.00%    0.00%   22.26%    0.01%    0.00%    0.00%
>>  77.73%
>> dirty_io_sched    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%
>> 100.00%
>>      scheduler    1.43%    1.42%   34.53%    5.79%   17.00%    1.34%
>>  38.49%
>
>
>
> --
> Петровский Александр / Alexander Petrovsky,
>
> Skype: askjuise
> Phone: +7 931 9877991
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20181114/6a9aef39/attachment.htm>


More information about the erlang-questions mailing list