实时流处理服务OutOfMemoryError现象之一

     今天对一个实时流数据处理服务进行压力测试,很快发生OutOfMemoryError错误,分别记录堆占用大小情况如下:

1. 原系统堆占用大小走势

                                        

2. 注释一行log后堆占用走势

                                       

      发现注释了一行频繁命中的log输出之后,堆占用大小迅速下降和处于平稳状态

3. 线程运行情况

                      

     通过查看原系统的业务线程运行情况,发现有很多进程显示为红色,处于竞争log文件资源写的阻塞等待状态,导致处理的数据流逐渐积累,最后发生OutOfMerrory错误。

  

4. 总结
a、堆溢出的异常,有些情况不是由于内存泄露造成的,特别是大规模数据实时流处理,有时候消费太慢,导致实时新生产的数据积累
b、觉得实时流数据处理服务的大多数瓶颈在于网络或磁盘I/O

原文地址:https://www.cnblogs.com/gisorange/p/3730633.html