久经沙场的高级技术师教你处理那些jvm遇到的问题

【spark】处理spark sql SqlParser 解析异常java.lang.StackOverflowError

主要原因为:由于sql语句过长时,java堆栈不够用。
解决方法为:设定jvm参数:-Xss10m
-Xss 每个线程的堆栈大小 JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K.更具应用的线程所需内存大小进行 调整.在相同物理内存下,减小这个值能生成更多的线程.但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。一般小的应用, 如果栈不是很深, 应该是128k够用的 大的应用建议使用256k。这个选项对性能影响比较大,需要严格的测试。
 

ManageOne2.2版本OC安装启动OC主进程失败

问题描述

OC双机部署成功之后,启动进程,发现“OperationCenter component”进程启动,然后停止,不断重复。页面显示页面加载中。
OCHost2:/opt/OperationCenter/AppBase/OC/AppBase/var/iemp/log/oc # service oc status
Floatip(192.168.211.152) ............... running
GaussDB(primary) ............... running
UniBi component ............... running
Search Engine component ............... running
Cas component ............... running
IDP component ............... running
OperationCenter component ............... starting
NTP ............... running
HA ............... running

处理过程

1 查看进程service OC status 发现进程OperationCenter component不断的重启
Floatip(192.168.211.152) ............... running
GaussDB(primary) ............... running
UniBi component ............... running
Search Engine component ............... running
Cas component ............... running
IDP component ............... running
OperationCenter component ............... starting
NTP ............... running
HA ............... running
2 检查启动日志,页面启动日志为空,
3 研发定位,主进程启动失败,日志为空,可能是内存太小,导致启动失败
4 检查start.sh文件,启动日志为6G,虚拟机总共内存是8G
OCHost1:/opt/OperationCenter/AppBase/OC/AppBase/lbin # vi start.sh
if [ -z "$JVM_MEM_CONF" ] ; then
JVM_OPT="$JVM_OPT -XX:NewRatio=3 -Xss256k -Xms6G -Xmx6G -XX:PermSize=256m -XX:MaxPermSize=256m - XX:ReservedCodeCacheSize=64m"
else
JVM_OPT="$JVM_OPT $JVM_MEM_CONF"
fi
5 把标红色的部分改成2G;
OCHost1:/opt/OperationCenter/AppBase/OC/AppBase/lbin # vi start.sh
if [ -z "$JVM_MEM_CONF" ] ; then
JVM_OPT="$JVM_OPT -XX:NewRatio=3 -Xss256k -Xms2G -Xmx2G -XX:PermSize=256m -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=64m"
else
JVM_OPT="$JVM_OPT $JVM_MEM_CONF"
fi
6 重新启动:
service oc stop
service oc start

建议与总结

其实按照设计是应该设计成16G内存的虚拟机,但是局方内存不够,导致启动失败。在设计的时候按照LLD的文档要求去规划ManageOne的虚拟机规格。

安装eSight后,如果物理内存发生变化(扩容或缩容),如何调整eSight的JVM参数?

物理内存发生变化后,eSight重启时会自动调整JVM参数。
•若eSight未设置为开机自启动,请直接启动eSight即可。
•若eSight设置为开机自启动,请在开机自启动后,再重新启动eSight。

hd修改controller的jvm参数参考

说明】仅记录实验室测试过程,不作为官方文档使用,可能会有很多地方未能验证,因此无法进行技术兜底,需使用方多加验证测试,涉及到高危需走变更。
 

例子:

如下是根据巡检工具巡检出来的不合格巡检项为例做修改

巡检项:

处理:

C70及之后版本:

通过执行grep "controller.Xms" ${CONTROLLER_HOME}
/etc/om/controller.properties查询controller.Xms,通过执行grep "controller.Xmx" ${CONTROLLER_HOME}/etc/om/controller.properties查询controller.Xmx。

主节点的信息:

备节点的信息:

注意:集群节点个数在0-500之间:controller.Xms不能小于1024m,controller.Xmx不能小于4096m;

恢复:

义,按照集群节点个数的不同,修改controller.Xmx与controller.Xms,然后使用omm用户执行sh ${CONTROLLER_HOME}
/sbin/restart-controller.sh重启controller。

主备节点节点:修改两个参数

vim /opt/huawei/Bigdata/om-server_8.0.2.1/om/etc/om/controller.properties

使用omm用户 重启下controller

su - omm

sh /opt/huawei/Bigdata/om-server_8.0.2.1/om/sbin/restart-controller.sh

备节点执行结果:

说明:本文限于篇幅,故而只展示部分java内容,完整的Java学习文档小编已经帮你整理好了,有需要的朋友点赞+关注私信我777免费领取Java、大厂面试学习资料哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值