Hi All,
We've been running storm 0.9.0.1 for some time now in pre-production and 
yesterday we started seeing this error in our logs. I've executed our topology 
with a reduced number of workers and it is working fine (5 Spout Pending, 
batchsize=100, maxtasks=5, numWorkers=25, parallelismHint=1). However, if I 
give it more workers and tasks (5 Spout Pending, batchsize=400, maxtasks=40, 
numWorkers=80, parallelismHint=10) then the topology seems to hang and starts 
showing the error below. This same topology used to run fin with batchsize of 
up to 2000.
java.lang.OutOfMemoryError: GC overhead limit exceeded
         at com.esotericsoftware.kryo.io.Output.toBytes(Output.java:103)
         at 
backtype.storm.serialization.KryoTupleSerializer.serialize(KryoTupleSerializer.java:28)
         at 
backtype.storm.daemon.worker$mk_transfer_fn$fn__5686$fn__5690.invoke(worker.clj:108)
         at backtype.storm.util$fast_list_map.invoke(util.clj:801)
         at 
backtype.storm.daemon.worker$mk_transfer_fn$fn__5686.invoke(worker.clj:108)
         at 
backtype.storm.daemon.executor$start_batch_transfer__GT_worker_handler_BANG_$fn__3328.invoke(executor.clj:240)
         at 
backtype.storm.disruptor$clojure_handler$reify__2962.onEvent(disruptor.clj:43)
         at 
backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:87)
         at 
backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:61)
         at 
backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:62)
         at 
backtype.storm.disruptor$consume_loop_STAR_$fn__2975.invoke(disruptor.clj:74)
         at backtype.storm.util$async_loop$fn__444.invoke(util.clj:403)
         at clojure.lang.AFn.run(AFn.java:24)
         at java.lang.Thread.run(Thread.java:662)
Can anyone pinpoint me to some configurations options that could help resolve 
this issue? Each worker has 600Mb of RAM as of now, this amount of memory 
seemed to be sufficient until yesterday.

Buffers are sized using these values:
topology.executor.receive.buffer.size: 16384
topology.executor.send.buffer.size: 16384
topology.receiver.buffer.size: 8
topology.transfer.buffer.size: 32

Thanks

Reply via email to