You can run kafka.tools.ConsumerOffsetChecker to check the consumer lag. If the consumer is lagging, this indicates a problem on the consumer side.
Thanks, Jun On Mon, Apr 22, 2013 at 9:13 PM, Andrew Neilson <arsneil...@gmail.com>wrote: > Hmm it is highly unlikely that that is the culprit... There is lots of > bandwidth available for me to use. I will definitely keep that in mind > though. I was working on this today and have some tidbits of additional > information and thoughts that you might be able to shed some light on: > > - I mentioned I have 2 consumers, but each consumer is running with 8 > threads for this topic (and each consumer has 8 cores available). > - When I initially asked for help the brokers were configured with > num.partitions=1, I've since tried higher numbers (3, 64) and haven't > seen > much of an improvement aside from forcing both consumer apps to handle > messages (with the overall performance not changing much). > - I ran into this article > > http://riccomini.name/posts/kafka/2012-10-05-kafka-consumer-memory-tuning/and > tried a variety of options of queuedchunks.max and fetch.size with no > significant results (simply meaning it did not achieve the goal of me > constantly processing hundreds or thousands of messages per second, > which > is similar to the rate of input). I would not be surprised if I'm wrong > but > this made me start to think that the problem may lie outside of the > consumers > - Would the combination of a high number of partitions (64) and a high > log.flush.interval (10k) prevent logs from flushing as often as they > need > to for my desired rate of consumption (even with > log.default.flush.interval.ms=1000?) > > Despite the changes I mentioned the behaviour is still the consumers > receiving larger spikes of messages mixed with periods of complete > inactivity and overall a long delay between messages being written and > messages being read (about 2 minutes). Anyway... as always I greatly > appreciate any help. > > On Sun, Apr 21, 2013 at 8:50 PM, Jun Rao <jun...@gmail.com> wrote: > > > Is your network shared? Is so, another possibility is that some other > apps > > are consuming the bandwidth. > > > > Thanks, > > > > Jun > > > > > > On Sun, Apr 21, 2013 at 12:23 PM, Andrew Neilson <arsneil...@gmail.com > > >wrote: > > > > > Thanks very much for the reply Neha! So I swapped out the consumer that > > > processes the messages with one that just prints them. It does indeed > > > achieve a much better rate at peaks but can still nearly zero out (if > not > > > completely zero out). I plotted the messages printed in graphite to > show > > > the behaviour I'm seeing (this is messages printed per second): > > > > > > > > > > > > https://www.dropbox.com/s/7u7uyrefw6inetu/Screen%20Shot%202013-04-21%20at%2011.44.38%20AM.png > > > > > > The peaks are over ten thousand per second and the troughs can go below > > 10 > > > per second just prior to another peak. I know that there are plenty of > > > messages available because the ones currently being processed are still > > > from Friday afternoon, so this may or may not have something to do with > > > this pattern. > > > > > > Is there anything I can do to avoid the periods of lower performance? > > > Ideally I would be processing messages as soon as they are written. > > > > > > > > > On Sun, Apr 21, 2013 at 8:49 AM, Neha Narkhede < > neha.narkh...@gmail.com > > > >wrote: > > > > > > > Some of the reasons a consumer is slow are - > > > > 1. Small fetch size > > > > 2. Expensive message processing > > > > > > > > Are you processing the received messages in the consumer ? Have you > > > > tried running console consumer for this topic and see how it performs > > > > ? > > > > > > > > Thanks, > > > > Neha > > > > > > > > On Sun, Apr 21, 2013 at 1:59 AM, Andrew Neilson < > arsneil...@gmail.com> > > > > wrote: > > > > > I am currently running a deployment with 3 brokers, 3 ZK, 3 > > producers, > > > 2 > > > > > consumers, and 15 topics. I should first point out that this is my > > > first > > > > > project using Kafka ;). The issue I'm seeing is that the consumers > > are > > > > only > > > > > processing about 15 messages per second from what should be the > > largest > > > > > topic it is consuming (we're sending 200-400 ~300 byte messages per > > > > second > > > > > to this topic). I should note that I'm using a high level ZK > consumer > > > and > > > > > ZK 3.4.3. > > > > > > > > > > I have a strong feeling I have not configured things properly so I > > > could > > > > > definitely use some guidance. Here is my broker configuration: > > > > > > > > > > brokerid=1 > > > > > port=9092 > > > > > socket.send.buffer=1048576 > > > > > socket.receive.buffer=1048576 > > > > > max.socket.request.bytes=104857600 > > > > > log.dir=/home/kafka/data > > > > > num.partitions=1 > > > > > log.flush.interval=10000 > > > > > log.default.flush.interval.ms=1000 > > > > > log.default.flush.scheduler.interval.ms=1000 > > > > > log.retention.hours=168 > > > > > log.file.size=536870912 > > > > > enable.zookeeper=true > > > > > zk.connect=XXX > > > > > zk.connectiontimeout.ms=1000000 > > > > > > > > > > Here is my producer config: > > > > > > > > > > zk.connect=XXX > > > > > producer.type=async > > > > > compression.codec=0 > > > > > > > > > > Here is my consumer config: > > > > > > > > > > zk.connect=XXX > > > > > zk.connectiontimeout.ms=100000 > > > > > groupid=XXX > > > > > autooffset.reset=smallest > > > > > socket.buffersize=1048576 > > > > > fetch.size=10485760 > > > > > queuedchunks.max=10000 > > > > > > > > > > Thanks for any assistance you can provide, > > > > > > > > > > Andrew > > > > > > > > > >