前期,dip-data-analyze 实现了线上的基本功能,这段时间,随着本部门及其他部门在上面跑任务增多,对hiveserver使用并发要求越来越高。
之前碰到过很多次 hiveserver发生stackoverflow问题,发生该问题后,hiveserver就会很快失效,表现是进程在,端口通,但是不再接受任务。
原因是hiveserver设置方法栈较低,之前-Xss=128k,上周五更新为512k ,到今天已经连续运行一周,目前系统稳定。
同时为了保障hiveserver挂掉或失效情况下,dip-data-analyze照样能正常运行,增加了负载均衡及转发任务及黑名单机制。逻辑图:
目前系统性能上存在一个问题就是 resin jvm 内存使用上 。现在设置最大堆内存3.8g,新生代2g,gc使用cms,年老代 在45%时gc,然后预估上限值 预估下线 分别为45% 30%。使用 linux top -M 观察 系统在运行2小时后 会从百兆级迅速增长到4g甚至以上。但是使用jmap -heap 或者 jmap -histo 等查看,堆一般使用在800m左右,多时到1.5g。
表名 jvm在任务过来后,分配内存给新对象,同时gc,但是 并没有 和 预估上限值 预估下线 分别为45% 30%设定的那样去收缩已分配内存,虽然已经gc掉.
欢迎朋友们 讨论 :)