[erlang-questions] Re: Unicast 20k messages, $500-$1000 bounty
Cliff Moon
cliff@REDACTED
Thu Jul 16 21:29:53 CEST 2009
Word dogg. On my ec2 cluster (2 machines, small instance) I'm pretty
consistently getting under 2 seconds:
(debug@REDACTED)1> bot:test(flashbot,
20000, "domU-12-31-39-02-B5-46.compute-1.internal", 8081).
publishing
=INFO REPORT==== 16-Jul-2009::14:34:42 ===
setup: 77401.66ms, good: 20000, bad: 0, run: 13670.42ms
590.9040ms | min
500.0000ms | 0 - 0.00%
1000.0000ms | 3553 - 17.77%
1500.0000ms | 8093 - 40.47%
2000.0000ms | 8354 - 41.77%
1861.2000ms | max
ok
(debug@REDACTED)2> bot:test(flashbot,
20000, "domU-12-31-39-02-B5-46.compute-1.internal", 8081).
publishing
=INFO REPORT==== 16-Jul-2009::14:36:32 ===
setup: 79961.47ms, good: 20000, bad: 0, run: 13641.45ms
459.8880ms | min
500.0000ms | 424 - 2.12%
1000.0000ms | 4116 - 20.58%
1500.0000ms | 7236 - 36.18%
2000.0000ms | 8224 - 41.12%
1760.0160ms | max
ok
The code is here: http://github.com/cliffmoon/janus
I'll have a write up a little later that has the optimizations which
seem to matter most.
Joel Reymont wrote:
>
> On Jul 16, 2009, at 6:18 PM, Cliff Moon wrote:
>
>> The problem you're seeing there is process scheduling overhead. In
>> the fun it sends a message and it's doing an ungodly amount of
>> context switching. The way to get around this is to bump the process
>> priority level of the process which iterates the ets table.
>
>
> bumping priority to high before the broadcasting list comprehension
> and lowering it after results in ~10ms broadcasting time and shaves
> ~300ms off max latency. Loving it!
>
> Mac is at ~2s (one box for everything) and ec2 is ~2.7s when bots are
> spread over 3 instances. It looks like process priority is a very
> useful tool in one's toolbox.
>
> (debug@REDACTED)4> bot:test(flashbot, 20000,
> 'ip-10-244-47-97', 8081).
>
> =INFO REPORT==== 16-Jul-2009::19:05:18 ===
> setup: 69312.72ms, good: 20000, bad: 0, run: 72269.01ms
> 315.0020ms | min
> 500.0000ms | 2019 - 10.10%
> 1000.0000ms | 3651 - 18.25%
> 1500.0000ms | 4433 - 22.17%
> 2000.0000ms | 5259 - 26.30%
> 2500.0000ms | 4057 - 20.29%
> 3000.0000ms | 581 - 2.90%
> 2713.3960ms | max
> ok
> (debug@REDACTED)5> bot:test(flashbot, 20000,
> 'ip-10-244-47-97', 8081).
>
> =INFO REPORT==== 16-Jul-2009::19:08:37 ===
> setup: 65606.03ms, good: 20000, bad: 0, run: 68362.39ms
> 328.4420ms | min
> 500.0000ms | 1361 - 6.80%
> 1000.0000ms | 4231 - 21.15%
> 1500.0000ms | 4477 - 22.38%
> 2000.0000ms | 4490 - 22.45%
> 2500.0000ms | 4051 - 20.26%
> 3000.0000ms | 1390 - 6.95%
> 2716.1440ms | max
> ok
> (debug@REDACTED)6> bot:test(flashbot, 20000,
> 'ip-10-244-47-97', 8081).
>
> =INFO REPORT==== 16-Jul-2009::19:10:45 ===
> setup: 99778.01ms, good: 19953, bad: 47, run: 104700.73ms
> 313.9300ms | min
> 500.0000ms | 1420 - 7.12%
> 1000.0000ms | 4553 - 22.82%
> 1500.0000ms | 3987 - 19.98%
> 2000.0000ms | 4777 - 23.94%
> 2500.0000ms | 4241 - 21.25%
> 3000.0000ms | 968 - 4.85%
> 3500.0000ms | 0 - 0.00%
> 4000.0000ms | 0 - 0.00%
> 4500.0000ms | 7 - 0.04%
> 4143.9490ms | max
> ok
>
> ---
> Mac hacker with a performance bent
> http://www.linkedin.com/in/joelreymont
>
>
More information about the erlang-questions
mailing list