Hi Geoffrey, Thank you for your helpful information. Do I have to install the virtual machines? I am using Mac as the testdriver machine or I can use a linux machine to run testdriver too.
Thanks. best, Yuheng On Wed, Jul 15, 2015 at 2:55 PM, Geoffrey Anderson <ge...@confluent.io> wrote: > Hi Yuheng, > > Running these tests requires a tool we've created at Confluent called > 'ducktape', which you need to install with the command: > pip install ducktape==0.2.0 > > Running the tests locally requires some setup (creation of virtual machines > etc.) which is outlined here: > > https://github.com/apache/kafka/pull/70/files#diff-62f0ff60ede3b78b9c95624e2f61d6c1 > The instructions in the quickstart show you how to run the tests on cluster > of virtual machines (on a single host) > > Once you have a cluster up and running, you'll be able to run the test > you're interested in: > cd kafka/tests > ducktape kafkatest/tests/benchmark_test.py > > Definitely keep us posted about which parts are difficult, annoying, or > confusing about this process and we'll do our best to help. > > Thanks, > Geoff > > > > On Wed, Jul 15, 2015 at 12:49 AM, Yuheng Du <yuheng.du.h...@gmail.com> > wrote: > > > 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 > > > > > >