故障:11.56 Zabbix收到告警,系统业务一个java进程挂了,今日正好值班遇到,做个分析手记,可以供大家参考。

排查1:查看系统资源情况

主要发现此刻CPU均突然增长,swap内存也有所增长但是并非资源耗尽的情况。此刻想到了Linux进行OOM-killer机制。

排查2:查核系统内核是否触发oom机制。

日志:/var/log/message --一般oom信息这里会找到,但是排查没有相关kill和内存信息。参考命令dmesg

了解:https://www.oracle.com/technetwork/articles/servers-storage-dev/oom-killer-1911807.html

排查3:java应用程序触发的oom

这个找了应用本身的log,发现并没有“java.lang.OutOfMemoryError: Java heap space”等信息

可查看JVM参数 -XX:+HeapDumpOnOutOfMemoryError 和 -XX:HeapDumpPath及是否产生相关dump,如果有则可

https://blog.51cto.com/renzhiyuan/2288355 之前分享的工具分析。 --本次查核没有,则继续分析。

排查4:JVM的bug导致

当jvm出现致命错误时,会生成一个错误文件 hs_err_pid.log。

参考:https://my.oschina.net/xionghui/blog/498785

重要信息:“SIGSEGV(0xb)”表示jvm crash时正在执行jni代码,而不是在执行java或者jvm的代码,如果没有在应用程序里手动调用jni代码,那么很可能是JIT动态编译时导致的该错误。其中SIGSEGV是信号名称,0xb是信号码,pc=0x00007fb8b18fdc6c指的是程序计数器的值,pid=191899是进程号,tid=140417770411776是线程号。

于是~基本确认是bug问题~~

java进程老挂掉_Java进程突然挂掉排查分析手记(jvm bug)相关推荐

  1. java的进程和线程_java进程和线程区别与不同

    java进程和线程区别与不同. 一.定义 1.进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位. 2.线程是进程的一个实体,是CPU调度和分派的基本 ...

  2. java加快内存回收_java内存管理之垃圾回收及JVM调优

    GC(garbage Collector 垃圾收集器) 作用:a.内存的动态分配:b.垃圾回收 注:Java所承诺的自动内存管理主要是针对对象内存的回收和对象内存的分配. 一.垃圾标记 程序计数器.J ...

  3. java进程老挂掉_JAVA进程突然挂掉

    JVM内存不足导致进程死掉. Native memory allocation (mmap) failed to map 一台服务器上部署很多JAVA进程已经是微服务的常态,但也有些坑. 背景,测试服 ...

  4. java进程老挂掉_JAVA进程突然挂掉 - 1024菜bird的个人空间 - OSCHINA - 中文开源技术交流社区...

    JVM内存不足导致进程死掉. Native memory allocation (mmap) failed to map 一台服务器上部署很多JAVA进程已经是微服务的常态,但也有些坑. 背景,测试服 ...

  5. java 进程 cpu占用_JAVA进程CPU占用高的故障排查 – 运维那些事

    问题分析: 1.程序属于CPU密集型,和开发沟通过,排除此类情况. 2.程序代码有问题,出现死循环,可能性极大. 解决过程: 1.根据top命令,发现PID为2633的Java进程占用CPU高达300 ...

  6. java查看内存泄露_Java内存泄露如何排查

    Java内存泄露是常常出现的问题,Java攀登网进行了该问题的整理,具体的如下所示: 1.2 内存泄露Memory Leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内 存泄露危害可以忽略 ...

  7. java 基本类型内存_java基本数据类型、内存分析、装包拆包

    2019-09-13   18:01:23 idea快捷键: file->settings->Keymap->搜索关键字 Increase Font Size   增大字体    c ...

  8. java 线程栈空间_java线程的内存不包含在JVM堆与栈中

    Java代码   publicclassMaxThreadsTest { publicstaticvoidmain(String[] args) { while(true) { newThread(n ...

  9. java thread 内存泄露_Java ThreadLocal 内存泄露问题分析及解决方法。

    前言 在分析ThreadLocal导致的内存泄露前,需要普及了解一下内存泄露.强引用与弱引用以及GC回收机制,这样才能更好的分析为什么ThreadLocal会导致内存泄露呢?更重要的是知道该如何避免这 ...

最新文章

  1. 神策 FM | 关于定价的 10 年经验总结
  2. MyBatis:lazy loading
  3. 利用多线程提高程序性能(for Android)
  4. 9/24matplotlib使用入门
  5. 《Java语言程序设计与数据结构》编程练习答案(第十九章)(一)
  6. 如何为你的CSDN博客加入百度统计
  7. leetcode第12题Python版整数转罗马字符串
  8. mysql下载与安装 win10 64位
  9. java实现界面化,java实现图形化界面
  10. db_recovery_file_dest恢复区的空间保留问题
  11. 关于OSPF的区域划分规则
  12. 深度学习理论——ssd从之前的网络断点接着训练
  13. 计算机中正斜杠/与反斜杠\的区别
  14. ​主机安全是什么以及​主机安全的功能和价值分析
  15. 女神是麦当娜男神是小沈阳
  16. Python 多线程学习
  17. 单片机c语言字符串比较,代码对比
  18. 实验六 移位寄存器及其应用
  19. shared_ptr的使用
  20. 【人脸识别】基于KL变换人脸识别含Matlab源码

热门文章

  1. 历史惊人相似,微软Exchange出现2022版“千年虫”bug
  2. Movist Pro for mac如何同时查看多个字幕?
  3. 2018最新动脑学院数据结构与算法系列视频教程
  4. 深圳区块链电子发票系统日均开票超12万张
  5. Linux中如何解压安装rar软件包?
  6. 京东数据分析工程师面试题11.17-11.19编辑
  7. 赛灵思中文版技术文档资源汇总(持续更新)
  8. C++ 双线性插值缩放图像
  9. canvas实现画板工具
  10. 数学不好是原罪——凸优化学习笔记(个人学习记录汇总)