分享

storm topology优化思路

howtodown 发表于 2014-9-23 23:18:04 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 7723
问题导读:
内容较少,只要能读懂作者优化思路即可






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

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

topology

component        name        executor latency(ms)
spout        s        -
bolt        A        0.5
bolt        B        0.1
bolt        C        0.5
bolt        D        1.0
bolt        E        0.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基本可信,我们在调优时可以参考该参数

本帖被以下淘专辑推荐:

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条