Most memory used by Kafka in serving requests and replicating the data is
transient. So, that typically won't cause OOME. How large is the
produce/fetch purgatory size (there is a jmx bean for each)?

Thanks,

Jun


On Mon, Sep 2, 2013 at 10:54 PM, Vadim Keylis <vkeylis2...@gmail.com> wrote:

> Jun. I will try to do heap dump once I'll able duplicate the exception.
> We have 300 topics which I estimate will grow rapidly. Each topic has 36
> partition to allow greater parallesim.
>  how kafka heap memory usage changes from your experience with addition of
> new topics and having large number of partitions?
>
> Thanks,
> Vadim
>
>
> On Mon, Sep 2, 2013 at 9:28 PM, Jun Rao <jun...@gmail.com> wrote:
>
> > For the OOME, could you do a heap dump and see what type of objects takes
> > most of the space?
> >
> > The second ERROR exposed a bug in Kafka. File KAFKA-1038 to fix that.
> >
> > Thanks,
> >
> > Jun
> >
> >
> > On Fri, Aug 30, 2013 at 10:39 PM, Vadim Keylis <vkeylis2...@gmail.com
> > >wrote:
> >
> > > I followed linkedin setup example in the docs and located 3g for heap
> > size.
> > >
> > > java -Xmx3G -Xms3G -server -XX:+UseCompressedOops -XX:+UseParNewGC
> > > -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled
> > > -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -
> > >
> > >  After a day of normal run scenario I discovered the following errors
> > > flooding the error log. I can increase the heap size its not a problem,
> > but
> > > I want to be able properly estimate how much memory kafka will use in
> > order
> > > to predict system limits as we add topics, consumers and etc.
> > >
> > > Thanks so much in advance,
> > > Vadim
> > >
> > > [2013-08-29 23:57:14,072] ERROR [ReplicaFetcherThread--1-6], Error due
> to
> > >  (kafka.server.ReplicaFetcherThread)
> > > java.lang.OutOfMemoryError: Java heap space
> > >         at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:114)
> > >         at
> java.io.OutputStreamWriter.write(OutputStreamWriter.java:203)
> > >         at java.io.Writer.write(Writer.java:140)
> > >         at
> > org.apache.log4j.helpers.QuietWriter.write(QuietWriter.java:48)
> > >         at
> > > org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:302)
> > >         at
> > >
> > >
> >
> com.ordersets.utils.logging.CustodianDailyRollingFileAppender.subAppend(CustodianDailyRollingFileAppender.java:299)
> > >         at
> > org.apache.log4j.WriterAppender.append(WriterAppender.java:160)
> > >         at
> > > org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)
> > >         at
> > >
> > >
> >
> org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)
> > >         at org.apache.log4j.Category.callAppenders(Category.java:206)
> > >         at org.apache.log4j.Category.forcedLog(Category.java:391)
> > >         at org.apache.log4j.Category.warn(Category.java:1060)
> > >         at kafka.utils.Logging$class.warn(Logging.scala:88)
> > >         at
> > kafka.utils.ShutdownableThread.warn(ShutdownableThread.scala:23)
> > >         at
> > >
> > >
> >
> kafka.server.AbstractFetcherThread.processFetchRequest(AbstractFetcherThread.scala:100)
> > >         at
> > >
> kafka.server.AbstractFetcherThread.doWork(AbstractFetcherThread.scala:88)
> > >         at
> > kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:51)
> > >
> > >
> > > [2013-08-30 10:21:44,932] ERROR [Kafka Request Handler 4 on Broker 5],
> > > Exception when handling request (kafka.server.KafkaRequestHandler)
> > > java.lang.NullPointerException
> > >         at
> > > kafka.api.FetchResponsePartitionData.<init>(FetchResponse.scala:46)
> > >         at
> > kafka.api.FetchRequest$$anonfun$2.apply(FetchRequest.scala:158)
> > >         at
> > kafka.api.FetchRequest$$anonfun$2.apply(FetchRequest.scala:156)
> > >         at
> > >
> > >
> >
> scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
> > >         at
> > >
> > >
> >
> scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
> > >         at
> > > scala.collection.immutable.HashMap$HashMap1.foreach(HashMap.scala:178)
> > >         at
> > >
> scala.collection.immutable.HashMap$HashTrieMap.foreach(HashMap.scala:347)
> > >         at
> > >
> scala.collection.immutable.HashMap$HashTrieMap.foreach(HashMap.scala:347)
> > >         at
> > > scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
> > >         at scala.collection.immutable.HashMap.map(HashMap.scala:38)
> > >         at kafka.api.FetchRequest.handleError(FetchRequest.scala:156)
> > >         at kafka.server.KafkaApis.handle(KafkaApis.scala:78)
> > >         at
> > > kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:42)
> > >         at java.lang.Thread.run(Thread.java:662)
> > > [2013-08-30 10:05:17,214] ERROR [Kafka Request Handler 6 on Broker 5],
> > > Exception when handling request (kafka.server.KafkaRequestHandler)
> > > java.lang.NullPointerException
> > >         at
> > > kafka.api.FetchResponsePartitionData.<init>(FetchResponse.scala:46)
> > >         at
> > kafka.api.FetchRequest$$anonfun$2.apply(FetchRequest.scala:158)
> > >         at
> > kafka.api.FetchRequest$$anonfun$2.apply(FetchRequest.scala:156)
> > >         at
> > >
> > >
> >
> scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
> > >         at
> > >
> > >
> >
> scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
> > >         at
> > > scala.collection.immutable.HashMap$HashMap1.foreach(HashMap.scala:178)
> > >         at
> > >
> scala.collection.immutable.HashMap$HashTrieMap.foreach(HashMap.scala:347)
> > >         at
> > >
> scala.collection.immutable.HashMap$HashTrieMap.foreach(HashMap.scala:347)
> > >         at
> > > scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
> > >         at scala.collection.immutable.HashMap.map(HashMap.scala:38)
> > >         at kafka.api.FetchRequest.handleError(FetchRequest.scala:156)
> > >         at kafka.server.KafkaApis.handle(KafkaApis.scala:78)
> > >         at
> > > kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:42)
> > >         at java.lang.Thread.run(Thread.java:662)
> > > [2013-08-30 10:06:55,929] INFO Closing socket connection to /
> 10.15.11.19
> > .
> > > (kafka.network.Processor)
> > >
> >
>

Reply via email to