3 ms·
After a quick glance, first thing that strikes me is using docker for measuring network bound application performance. Across different versions docker handles
by fluential 10y ago
After a quick glance, first thing that strikes me is using docker for measuring network bound application performance. Across different versions docker handles networking differently and by default it may have quite significant impact on your results, good example comes from percona guys https://www.percona.com/blog/2016/02/05/measuring-docker-cpu-network-overhead/ https://www.percona.com/blog/2016/02/05/measuring-docker-cpu...
I wonder what would results be without using docker, or using docker with --net=host
- StreamBright 10y agoI guess some performance testers just don't know what they are measuring, in this case: the overhead of docker of the performance of the Python code. To be fair it is hard to understand a whole system performance. I would love to see a test without Docker though.
- jdennison 10y agoOriginal author here. The docker network point is a good one, I'll give it a try with host network. There is still value with comparing different clients with the same network constraints. Yeah it is a contrived setup(noted in the post), but at least is the same contrived setup for each test.
- jdennison 10y agoAfter rerunning the tests with docker host=net i see a small bump in the rate. ~1% across all the clients. Msgs/s confluent_kafka_consumer : 277573.293164 / 261407.908007 = 1.061% pykafka_consumer : 33433.342585 / 33976.938217 = 0.984% pykafka_consumer_rdkafka : 164311.503412 / 172008.742201 = 0.955% python_kafka_consumer : 37667.971237 / 38622.727894 = 0.975% So yes docker network magic adds overhead, but the bias is consistent across all clients.