[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

Wei Cao <>
Thu Jul 12 10:45:14 CEST 2012


Hi,

2012/7/12 Zabrane Mickael <>:
> 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? if it was measured on a unpatched erlang
version, would you mind measuring it on the patched version and let me
know the result?

>
> My question was: could we reach the 100K rps on a 4-cores machine with
> ehttpd ?
> That will be awesome.
>

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 ~


> Regards,
> Zabrane
>
> On Jul 12, 2012, at 3:48 AM, Wei Cao wrote:
>
> we can reach 135 rps on a 16 core machine, it's quite reasonable to
> have 70k rps on a 8 core machine.
>
> lscpu
>
> Architecture:          x86_64
> CPU op-mode(s):        32-bit, 64-bit
> Byte Order:            Little Endian
> CPU(s):                16
> On-line CPU(s) list:   0-15
> Thread(s) per core:    2
> Core(s) per socket:    4
> CPU socket(s):         2
> NUMA node(s):          2
> Vendor ID:             GenuineIntel
> CPU family:            6
> Model:                 44
> Stepping:              2
> CPU MHz:               2134.000
> BogoMIPS:              4266.58
> Virtualization:        VT-x
> L1d cache:             32K
> L1i cache:             32K
> L2 cache:              256K
> L3 cache:              12288K
> NUMA node0 CPU(s):     0-3,8-11
> NUMA node1 CPU(s):     4-7,12-15
>
>
>
> 2012/7/12 Zabrane Mickael <>:
>
> Hi Wei,
>
>
> On Jul 11, 2012, at 2:35 PM, Wei Cao wrote:
>
>
> sure, the steps is correct
>
>
>
> I re-installed everything from scratch with your second patch and tested
>
> your ehttpd web server example.
>
>
> before: ~55K rps
>
> after: ~70K rps
>
>
> but was unable to reach the 100K rps.
>
>
> Anyone courageous enough to help us reach the 100K rps?
>
>
> Regards,
>
> Zabrane
>
>
>
>
>
> --
>
> Best,
>
> Wei Cao
>
>
>
>



-- 

Best,

Wei Cao



More information about the erlang-questions mailing list