Strom优化
来源:互联网 发布:超级特工软件 编辑:程序博客网 时间:2024/04/28 12:24
并行度
worker为storm提供工作进程,程序的并行度可以设置(包括spout和bolt的并行度,如果有acker的话还包括acker的并行度),并行度即为task 数目。
一般而言 worker和task之间的比例,即1个worker包含10~15个左右,当然根据配置和应用需要测试优化。
worker(slots)
CPU 16核,建议配置20个worker。CPU 24或32核,30个worker
默认情况下,Storm启动worker进程时,JVM的最大内存是768,可以通过在Strom的配置文件storm.yaml中设置worker的启动参数 worker.childopts: “-Xmx2048m”
一个topology使用的worker数量,12个是比较合理的,这个时候吞吐量和整体性能最优。如果多增加worker进程的话,会讲一些原本线程间的内存通信变为进程间的网络通信。
acker优化
如果可靠性对你来说不是那么重要,那么你可以通过不跟踪这些tuple树来获取更好的性能。不去跟踪消息的话会使得系统里面的消息数量减少一半, 因为对于每一个tuple都要发送一个ack消息。
有三种方法可以去掉可靠性。
第一是把config.setNumAckers(0)设置为0,在这种情况下, storm会在spout发射一个tuple之后马上调用spout的ack方法。也就是说这个tuple树不会被跟踪。
第二个方法是在tuple层面去掉可靠性。 你可以在发射tuple的时候不指定messageid来达到不跟踪spout中tuple的目的。
最后一个方法是如果你对于一个tuple树里面的某一部分到底成不成功不是很关心,那么可以在发射这些tuple的时候unanchor它们(anchor是锚定的意思,unanchor表示不把当前这个tuple包含到tuple树中,也就是说不跟踪这个消息了)。 这样这些tuple就不在tuple树里面, 也就不会被跟踪了。
- Strom优化
- Strom优化指南
- strom
- Strom Concepts
- Strom Tutorial
- strom grouping
- Strom命令
- Strom配置
- 关于strom
- Strom HA
- STROM简介
- Strom简介
- Strom基础
- Strom安装
- Strom入门
- Strom Spouts
- Twitter strom 集群搭建
- Trident spouts - Strom
- IE的attachEvent,危险!
- PHP常用的字符串函数
- Redis字符串类型操作命令
- startActivityForResult用法详解
- move_zero(linklist version)
- Strom优化
- List类型操作命令
- set类型操作命令
- Sort Set排序集合类型操作命令
- Ubuntu下Qt5编译提示/usr/bin/ld: error: cannot find -lGL
- 第八周项目1数组做数据成员(1)
- kmp的认识
- hash集合类型操作命令
- ThinkPHP + Ajax 实现2级联动下拉菜单