使用dynamo增加网络负载重型拓扑风暴的吞吐量

时间:2015-07-07 06:52:06

标签: bigdata amazon-dynamodb apache-storm

我在aws上运行了拓扑。我使用的是带有15GB内存的M3 xlarge机器,8个主管。我的拓扑很简单,我从中读到 kafka spout - > [db o / p1] - > [db o / p2] - > [dynamo fetch] - > [dynamo write& kafka写道] kafka

db o / ps是有条件的。延迟大约100 - 150毫秒。

但我从未能达到超过300 msgs / sec的吞吐量。

要进行哪些配置更改,以便我可以获得超过3k msgs / sec的吞吐量?

dynamo fetch bolt执行延迟大约为150 - 220ms 和发电机读数螺栓执行延迟也在这个数字附近。

四个平行度为90的螺栓和一个平行度为30(30 kafka分区)的喷口

整体延迟大于4秒。

topology.message.timeout.secs: 600 worker.childopts: "-Xmx5120m no. of worker ports per machine : 2

no of workers : 6 no of threads : 414 executor send buffer size 16384 executor receive buffer size 16384 transfer buffer size: 34 no of ackers: 24

1 个答案:

答案 0 :(得分:2)

查看控制台快照,我看到......

1)Spout的整体延迟远远大于螺栓执行延迟的总和,这意味着其中一个流上有积压,

2)SEBolt的容量远高于其他螺栓的容量,这意味着Storm认为需要比其他螺栓更多地运行螺栓

所以我认为你的瓶颈是SEBolt。考虑增加对那个的并行性提示。如果任务总数过高,请减少其他螺栓的平行度提示,以抵消SEBolt的增加。