Storm任务常见问题总结

内存泄漏[OOM]

容器类使用不当,导致对象无限增加。

线程泄漏

修复前后对比,正常情况下100-200个线程之间就足够了。

 通过命令快速查看进程的线程数量   ,  ps hH p <pid> | wc -l,这个命令查看一个进程(用H选项)的线程数

for i in `ps aux | grep -v grep | grep java | awk '{print $2}'` ; do echo $i "-->" `ps hH p $i | wc -l`  ; done
81109 --> 29
81112 --> 22
166924 --> 43
176107 --> 153
176109 --> 148

连接泄漏

JDBC4PreparedStatement对象没有关闭,连接泄漏同时也会OOM

并发设置不合理

并发设置过大导致线程数高居不下,上下文切换成本较大。

组件并发设置不合理,导致worker CPU使用率偏差较大,影响任务的稳定。

不合理日志输出

日志太多,很容易把磁盘写爆。

下游系统故障

mysql IO问题,导致数据囤积在worker中会触发频繁的GC。

猜你喜欢

转载自woodding2008.iteye.com/blog/2326360