Storm Topology 一种优化思路

来源:互联网 发布:遥感影像数据拼接 编辑:程序博客网 时间:2024/05/17 13:46

原文:https://my.oschina.net/jerrysearch/blog/201373

谈谈分布式环境一种优化storm topology的思路,肯定不是优化包含的全部,但一定是其中一部分。

先假设一种环境,三台机器,cpu core 4,net KM 网

topology

componentnameexecutor latency(ms)spouts-boltA0.5boltB0.1boltC0.5boltD1.0boltE0.2


executor代表数据进入bolt execute方法执行的时间,storm通过采样获得,采样在总数上肯定会有误差,但平均数我们暂且认为其一定,这就相当于在1W个1中随机选择一个,怎么选都是1,所以暂且我们假设executor latency可信,最后我们通过实际效率反过来再验证我们的假设。


假定,我们以一种参数提交了topology,运行后ui查看参数如表格,我们观察发现,A,C 两个bolt延迟在0.5ms,B bolt延迟在0.1ms,D bolt延迟在1.0ms,E bolt延迟在0.2ms,所以可以认为性能:B=2E=5A=5C=10D,所以我们提高整个topology的效率可以调整各bolt的并行度,我们设B的并行度为X,可以得出   X+2X+5X*2+10X=All executor,如果在某个bolt中有阻塞情况,我们可以再额外提高一些并行度,该环境中三台机器,最大并行度为3*4=12,X》=1,所以X=1,由此可得出,B bolt并行度为1,所以每秒处理效率大概=1000/0.1*1=1W。


另外在storm中每个worker有个线程池,池大小默认为core数,我们可以根据情况提高池大小,提高cpu利用率。

其它参数这里不提了,根据实际情况可以酌情调整。


总结:

由此可看出,ui中executor latency基本可信,我们在调优时可以参考该参数。


原创粉丝点击