[erlang-questions] UDP receive performance

Danil Zagoskin z@REDACTED
Thu May 24 12:21:23 CEST 2018


Yes, I've built a fresh master today (Erlang/OTP 21 [RELEASE CANDIDATE 1]
[erts-9.3.1]), and nothing has changed.

On Thu, May 24, 2018 at 1:17 PM, Sergej Jurečko <sergej.jurecko@REDACTED>
wrote:

> OTP-21 rc1 has enhanced IO scalability. Have you tried if it is any
> better? UDP performance in Erlang was never great...
>
> Regards,
> Sergej
>
>
> On 24 May 2018, at 12:03, Danil Zagoskin <z@REDACTED> wrote:
>
> Yes, we have {read_packets, 100} in receive socket options.
>
> On Thu, May 24, 2018 at 10:23 AM, Raimo Niskanen <
> raimo+erlang-questions@REDACTED> wrote:
>
>> On Wed, May 23, 2018 at 06:28:55PM +0300, Danil Zagoskin wrote:
>> > Hi!
>> >
>> > We have a performance problem receiving lots of UDP traffic.
>> > There are a lot (about 70) of UDP receive processes, each handling
>> about 1
>> > to 10 megabits of multicast traffic, with {active, N}.
>>
>> Whenever someone has UDP receive performance problems one has to ask if
>> you
>> have seen the Erlang socket option {read_packets,N}?
>>
>> See http://erlang.org/doc/man/inet.html#setopts-2
>>
>> >
>> > msacc summary on my OSX laptop, build from OTP master
>> > c30309e799212b080c39ee2f91af3f9a0383d767 (Apr 19):
>> >
>> >
>> >         Thread    alloc      aux      bifbusy_wait check_io emulator
>> >    ets       gc  gc_full      nif    other     port     send    sleep
>> >  timers
>> >      scheduler   30.02%    0.92%    2.86%   24.66%    0.01%    9.61%
>> >  0.03%    1.25%    0.20%    0.13%    2.34%    9.33%    0.41%   17.78%
>> >   0.44%
>> >
>> >
>> > Linux production server behaves the same way (we do not have extended
>> msacc
>> > there yet, so most of alloc goes to port).
>> >
>> > perf top (on Linux production) says there's a lot of unaligned memmove:
>> >
>> >   69.76%  libc-2.24.so        [.] __memmove_sse2_unaligned_erms
>> >    6.13%  beam.smp            [.] process_main
>> >    2.02%  beam.smp            [.] erts_schedule
>> >    0.87%  [kernel]            [k] copy_user_enhanced_fast_string
>> >
>> >
>> > I'll try to make a minimal example for this.
>> > Maybe there are simple recommendations on optimizing this kind of load?
>> >
>> > --
>> > Danil Zagoskin | z@REDACTED
>>
>> > _______________________________________________
>> > erlang-questions mailing list
>> > erlang-questions@REDACTED
>> > http://erlang.org/mailman/listinfo/erlang-questions
>>
>>
>> --
>>
>> / Raimo Niskanen, Erlang/OTP, Ericsson AB
>> _______________________________________________
>> erlang-questions mailing list
>> erlang-questions@REDACTED
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>
>
>
> --
> Danil Zagoskin | z@REDACTED
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
>
>


-- 
Danil Zagoskin | z@REDACTED
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20180524/79e26842/attachment.htm>


More information about the erlang-questions mailing list