Jiefu, Have you tried to run benchmark_test.py? I ran it and it asks me for the ducktape.services.service
yuhengdu@consumer0:/packages/kafka_2.10-0.8.2.1$ python benchmark_test.py Traceback (most recent call last): File "benchmark_test.py", line 16, in <module> from ducktape.services.service import Service ImportError: No module named ducktape.services.service Can you help me on getting it to work, Ewen? Thanks. best, Yuheng On Tue, Jul 14, 2015 at 11:28 PM, Ewen Cheslack-Postava <e...@confluent.io> wrote: > @Jiefu, yes! The patch is functional, I think it's just waiting on a bit of > final review after the last round of changes. You can definitely use it for > your own benchmarking, and we'd love to see patches for any additional > tests we missed in the first pass! > > -Ewen > > On Tue, Jul 14, 2015 at 10:53 AM, JIEFU GONG <jg...@berkeley.edu> wrote: > > > Yuheng, > > I would recommend looking here: > > http://kafka.apache.org/documentation.html#brokerconfigs and scrolling > > down > > to get a better understanding of the default settings and what they mean > -- > > it'll tell you what different options for acks does. > > > > Ewen, > > Thank you immensely for your thoughts, they shed a lot of insight into > the > > issue. Though it is understandable that your specific results need to be > > verified, it seems that the KIP-25 patch is functional and I can use it > for > > my own benchmarking purposes? Is that correct? Thanks again! > > > > On Tue, Jul 14, 2015 at 8:22 AM, Yuheng Du <yuheng.du.h...@gmail.com> > > wrote: > > > > > Also, I guess setting the target throughput to -1 means let it be as > high > > > as possible? > > > > > > On Tue, Jul 14, 2015 at 10:36 AM, Yuheng Du <yuheng.du.h...@gmail.com> > > > wrote: > > > > > > > Thanks. If I set the acks=1 in the producer config options in > > > > bin/kafka-run-class.sh > > org.apache.kafka.clients.tools.ProducerPerformance > > > > test7 50000000 100 -1 acks=1 bootstrap.servers= > > > > esv4-hcl198.grid.linkedin.com:9092 buffer.memory=67108864 > > > batch.size=8196? > > > > > > > > Does that mean for each message generated at the producer, the > producer > > > > will wait until the broker sends the ack back, then send another > > message? > > > > > > > > Thanks. > > > > > > > > Yuheng > > > > > > > > On Tue, Jul 14, 2015 at 10:06 AM, Manikumar Reddy < > > ku...@nmsworks.co.in> > > > > wrote: > > > > > > > >> Yes, A list of Kafka Server host/port pairs to use for establishing > > the > > > >> initial connection to the Kafka cluster > > > >> > > > >> https://kafka.apache.org/documentation.html#newproducerconfigs > > > >> > > > >> On Tue, Jul 14, 2015 at 7:29 PM, Yuheng Du < > yuheng.du.h...@gmail.com> > > > >> wrote: > > > >> > > > >> > Does anyone know what is bootstrap.servers= > > > >> > esv4-hcl198.grid.linkedin.com:9092 means in the following test > > > command: > > > >> > > > > >> > bin/kafka-run-class.sh > > > >> org.apache.kafka.clients.tools.ProducerPerformance > > > >> > test7 50000000 100 -1 acks=1 bootstrap.servers= > > > >> > esv4-hcl198.grid.linkedin.com:9092 buffer.memory=67108864 > > > >> batch.size=8196? > > > >> > > > > >> > what is bootstrap.servers? Is it the kafka server that I am > running > > a > > > >> test > > > >> > at? > > > >> > > > > >> > Thanks. > > > >> > > > > >> > Yuheng > > > >> > > > > >> > > > > >> > > > > >> > > > > >> > On Tue, Jul 14, 2015 at 12:18 AM, Ewen Cheslack-Postava < > > > >> e...@confluent.io > > > >> > > > > > >> > wrote: > > > >> > > > > >> > > I implemented (nearly) the same basic set of tests in the system > > > test > > > >> > > framework we started at Confluent and that is going to move into > > > >> Kafka -- > > > >> > > see the wip patch for KIP-25 here: > > > >> > https://github.com/apache/kafka/pull/70 > > > >> > > In particular, that test is implemented in benchmark_test.py: > > > >> > > > > > >> > > > > > >> > > > > >> > > > > > > https://github.com/apache/kafka/pull/70/files#diff-ca984778cf9943407645eb6784f19dc8 > > > >> > > > > > >> > > Hopefully once that's merged people can reuse that benchmark > (and > > > add > > > >> to > > > >> > > it!) so they can easily run the same benchmarks across different > > > >> > hardware. > > > >> > > Here are some results from an older version of that test on > > > m3.2xlarge > > > >> > > instances on EC2 using local ephemeral storage (I think... it's > > been > > > >> > awhile > > > >> > > since I ran these numbers and I didn't document methodology that > > > >> > > carefully): > > > >> > > > > > >> > > INFO:_.KafkaBenchmark:================= > > > >> > > INFO:_.KafkaBenchmark:BENCHMARK RESULTS > > > >> > > INFO:_.KafkaBenchmark:================= > > > >> > > INFO:_.KafkaBenchmark:Single producer, no replication: > > 684097.470208 > > > >> > > rec/sec (65.240000 MB/s) > > > >> > > INFO:_.KafkaBenchmark:Single producer, async 3x replication: > > > >> > > 667494.359673 rec/sec (63.660000 MB/s) > > > >> > > INFO:_.KafkaBenchmark:Single producer, sync 3x replication: > > > >> > > 116485.764275 rec/sec (11.110000 MB/s) > > > >> > > INFO:_.KafkaBenchmark:Three producers, async 3x replication: > > > >> > > 1696519.022182 rec/sec (161.790000 MB/s) > > > >> > > INFO:_.KafkaBenchmark:Message size: > > > >> > > INFO:_.KafkaBenchmark: 10: 1637825.195625 rec/sec (15.620000 > MB/s) > > > >> > > INFO:_.KafkaBenchmark: 100: 605504.877911 rec/sec (57.750000 > MB/s) > > > >> > > INFO:_.KafkaBenchmark: 1000: 90351.817570 rec/sec (86.170000 > MB/s) > > > >> > > INFO:_.KafkaBenchmark: 10000: 8306.180862 rec/sec (79.210000 > MB/s) > > > >> > > INFO:_.KafkaBenchmark: 100000: 978.403499 rec/sec (93.310000 > MB/s) > > > >> > > INFO:_.KafkaBenchmark:Throughput over long run, data > memory: > > > >> > > INFO:_.KafkaBenchmark: Time block 0: 684725.151324 rec/sec > > > (65.300000 > > > >> > MB/s) > > > >> > > INFO:_.KafkaBenchmark:Single consumer: 701031.140000 rec/sec > > > >> (56.830500 > > > >> > > MB/s) > > > >> > > INFO:_.KafkaBenchmark:Three consumers: 3304011.014900 rec/sec > > > >> (267.830800 > > > >> > > MB/s) > > > >> > > INFO:_.KafkaBenchmark:Producer + consumer: > > > >> > > INFO:_.KafkaBenchmark: Producer: 624984.375391 rec/sec > (59.600000 > > > >> MB/s) > > > >> > > INFO:_.KafkaBenchmark: Consumer: 624984.375391 rec/sec > (59.600000 > > > >> MB/s) > > > >> > > INFO:_.KafkaBenchmark:End-to-end latency: median 2.000000 ms, > 99% > > > >> > > 4.000000 ms, 99.9% 19.000000 ms > > > >> > > > > > >> > > Don't trust these numbers for anything, the were a quick one-off > > > test. > > > >> > I'm > > > >> > > just pasting the output so you get some idea of what the results > > > might > > > >> > look > > > >> > > like. Once we merge the KIP-25 patch, Confluent will be running > > the > > > >> tests > > > >> > > regularly and results will be available publicly so we'll be > able > > to > > > >> keep > > > >> > > better tabs on performance, albeit for only a specific class of > > > >> hardware. > > > >> > > > > > >> > > For the batch.size question -- I'm not sure the results in the > > blog > > > >> post > > > >> > > actually have different settings, it could be accidental > > divergence > > > >> > between > > > >> > > the script and the blog post. The post specifically notes that > > > tuning > > > >> the > > > >> > > batch size in the synchronous case might help, but that he > didn't > > do > > > >> > that. > > > >> > > If you're trying to benchmark the *optimal* throughput, tuning > the > > > >> batch > > > >> > > size would make sense. Since synchronous replication will have > > > higher > > > >> > > latency and there's a limit to how many requests can be in > flight > > at > > > >> > once, > > > >> > > you'll want a larger batch size to compensate for the additional > > > >> latency. > > > >> > > However, in practice the increase you see may be negligible. > > > Somebody > > > >> who > > > >> > > has spent more time fiddling with tweaking producer performance > > may > > > >> have > > > >> > > more insight. > > > >> > > > > > >> > > -Ewen > > > >> > > > > > >> > > On Mon, Jul 13, 2015 at 10:08 AM, JIEFU GONG < > jg...@berkeley.edu> > > > >> wrote: > > > >> > > > > > >> > > > Hi all, > > > >> > > > > > > >> > > > I was wondering if any of you guys have done benchmarks on > Kafka > > > >> > > > performance before, and if they or their details (# nodes in > > > >> cluster, # > > > >> > > > records / size(s) of messages, etc.) could be shared. > > > >> > > > > > > >> > > > For comparison purposes, I am trying to benchmark Kafka > against > > > some > > > >> > > > similar services such as Kinesis or Scribe. Additionally, I > was > > > >> > wondering > > > >> > > > if anyone could shed some insight on Jay Kreps' benchmarks > that > > he > > > >> has > > > >> > > > openly published here: > > > >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > > > > https://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines > > > >> > > > > > > >> > > > Specifically, I am unsure of why between his tests of 3x > > > synchronous > > > >> > > > replication and 3x async replication he changed the > batch.size, > > as > > > >> well > > > >> > > as > > > >> > > > why he is seemingly publishing to incorrect topics: > > > >> > > > > > > >> > > > Configs: > > > >> > > > https://gist.github.com/jkreps/c7ddb4041ef62a900e6c > > > >> > > > > > > >> > > > Any help is greatly appreciated! > > > >> > > > > > > >> > > > > > > >> > > > > > > >> > > > -- > > > >> > > > > > > >> > > > Jiefu Gong > > > >> > > > University of California, Berkeley | Class of 2017 > > > >> > > > B.A Computer Science | College of Letters and Sciences > > > >> > > > > > > >> > > > jg...@berkeley.edu <elise...@berkeley.edu> | (925) 400-3427 > > > >> > > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > -- > > > >> > > Thanks, > > > >> > > Ewen > > > >> > > > > > >> > > > > >> > > > > > > > > > > > > > > > > > > > -- > > > > Jiefu Gong > > University of California, Berkeley | Class of 2017 > > B.A Computer Science | College of Letters and Sciences > > > > jg...@berkeley.edu <elise...@berkeley.edu> | (925) 400-3427 > > > > > > -- > Thanks, > Ewen >