Benchmarking on my laptop - Number of event producers vs Events per second

Just thought I’d share a fun benchmark I did today.

  • Producer is a python script, started in a separate terminal window
  • Producer pushes 1,000 Events each of size 1K (random data) to Event Store
  • With a random event-id
  • Via HTTP API.
  • Events/sec Indiv. shows how many events per second each producer could push (I took the minimum out of all)
  • Events/sec Total shows the total throughput of the system. It’s the product of previous two colums.
    E.g.: Events/Sec Total = Num. Producers * Events/Sec Indiv.

what model of macbook

You probably want to do more than 1000/thread to get stable readings.

2016 1.1 Ghz Retina, 8GB RAM:

I’m not doing per-thread, I’m doing per http POST.
So 1,000 events in a single POST, each event is a bunch of JSON gibberish 1k in size. Then I measure time it takes for ES to respond, and average these times out.

By running it on a single box, doesn’t this suffer from the cost of context switches between producers once the number of thread significantly exceeds number of cores?