[erlang-questions] Improve performance of IO bounded server written in Erlang via having pollset for each scheduler and bind port to scheduler together with process

Zabrane Mickael <>
Thu Jul 12 11:02:20 CEST 2012

Hi Wei,

>> We already surpassed the 100krps on an 8-cores machine with our HTTP server
>> (~150K rps).
> Which erlang version did you use to get ~150k rps on 8-cores machine,
> patched or unpatched?

We reach the 150K on the unpatched version.

> if it was measured on a unpatched erlang
> version, would you mind measuring it on the patched version and let me
> know the result?

I didn't yet adapted our code to use VM with your patch.
I'll keep you informed.

> Today I found a lock bottleneck through SystemTap, trace-cmd and lcnt,
> after fixing it, ehttpd on my 16-cores can reach 325k rps.
> RX packets: 326117 TX packets: 326122
> RX packets: 326845 TX packets: 326859
> RX packets: 327983 TX packets: 327996
> RX packets: 326651 TX packets: 326624
> This is the upper limit of our Gigabit network card, I run ab on three
> standalone machines to make enough pressure, I posted the fix to
> github, have a try ~

That's simply fantastic. Could you share your bottleneck tracking method?
Any new VM patch to provide?


More information about the erlang-questions mailing list