Hive现网内存问题定位总结

本文总结了在现网环境中遇到的Hive服务器内存问题的定位过程,通过JDK工具(如jstat、jstack、jmap)结合Linux命令(如top、ps、vmstat)分析,最终发现由于连接PG外表时autoCommit设为true导致的大内存消耗。通过此案例,了解了CMS垃圾回收器的工作原理和内存问题排查技巧。
摘要由CSDN通过智能技术生成

现网内存问题定位总结

 

  前段时间,现网遇到一个很奇葩的问题,server会莫名其妙的重启。个人功力有限,这个问题搞了好久才找到问题原因,现在就把此类问题的基本定位方法梳理一下,也算是一个总结吧。

  搞java(或其他JVM语言)的人都知道,jdk里自带了几个很牛逼的工具(jmap/jstack/jstat),是定位java问题的利器,首先要知道这几个工具的使用,然后结合linux的相关工具(top/ps/vmstat等),再通过gc日志和程序日志的分析,逐步找到问题产生的原因。

 

一.            JDK相关

(1)    Jstat

此命令可以指定很多参数,可以查看gc和内存使用信息。如-class可以显示加载class数量,-gc可以动态显示java堆各区情况、gc次数等,-gcutil可以动态显示堆各区使用情况、gc次数等,-gccapacity可以查看各个区大小分配情况,我一般使用gc比较多,因为它显示的信息更详细更全。

(2)    Jstack

此命令可以打印当前各线程栈信息,相当于程序的一个快照,可以看到各个进程都在做什么,对定位问题非常有用。

(3)    Jmap

此命令可以对java堆进行更详细的解剖,-heap可以看各区分配和使用情况,-histo可以看各个类型所占用空间,-dump可以将当前进程dump下来,使用jhat或者Mat进行分析,定位内存泄露等问题。

(4)    Jvm参数

Jvm有很多种gc类型可以选择,还有很多个参数。hive是用户相应为先的

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值