都说spark那么牛,有没有啥坑啊( 三 )
为什么会有这些对象在里面,我们看下源码
8.JDO内存泄露
多达10万多个JDOPersistenceManage
【都说spark那么牛,有没有啥坑啊】
9.listerner内存泄露
通过debug工具监控发现,spark的listerner随着时间的积累,通知(post)速度运来越慢
发现所有代码都卡在了onpostevent上
jstack的结果如下
研究下了调用逻辑如下,发现是循环调用listerners,而且listerner都是空执行才会产生上面的jstack截图
通过内存发现有30多万个linterner在里面
发现都是大多数都是同一个listener,我们核对下该处源码
最终定位问题
确系是这个地方的BUG ,每次创建JDBC连接的时候 ,spark就会增加一个listener, 时间久了,listener就会积累越来越多 针对这个问题 我简单的修改了一行代码,开始进入下一轮的压测
二十二、spark源码调优测试发现,即使只有1条记录,使用 spark进行一次SQL查询也会耗时1秒,对很多即席查询来说1秒的等待,对用户体验非常不友好。针对这个问题,我们在spark与hive的细节代码上进行了局部调优,调优后,响应时间由原先的1秒缩减到现在的200~300毫秒。
以下是我们改动过的地方
1.SessionState 的创建目录 占用较多的时间
另外使用Hadoop namenode HA的同学会注意到,如果第一个namenode是standby状态,这个地方会更慢,就不止一秒,所以除了改动源码外,如果使用namenode ha的同学一定要注意,将active状态的node一定要放在前面。
推荐阅读
- 古人都说:“一颗绿萝七个鬼”,家中为什么忌讳养绿萝?
- 都说冬天要“少浇水”,家里有“4种花”要勤浇水,预防黄叶
- 为啥电器实体店的价格比淘宝贵那么多
- 为啥开通了百度云超级会员下载速度还是会那么慢
- 白皮书一般是政府发布的正式报告或文件,那么现在物联网、智慧城市等热门领域这么多企业发布的白皮书算咋回事呢
- 为啥网上那么多诈骗的都没人管
- 车神探|探闻丨C-NCAP提升标准!这一批测试的结果还那么水吗?
- 汽车驾驶|设计师邀海外人士,变速箱寄人篱下,弯道超车,哪有那么容易
- 凯迪拉克CT6|都说新辉昂回归百万级质感,看完后发现不假
- 趣头条|都说科三太难,但这些“技巧”没有掌握,就不要再说自己努力过