`
blueswind8306
  • 浏览: 127258 次
  • 来自: ...
社区版块
存档分类
最新评论

java进程hang住的case

阅读更多
记录一个linux内核bug导致的jvm hang住的问题:

最近厂内新上了一批机器,发现在这批机器上有java进程hang住的问题出现,发生问题时jvm会一直卡在minorGC阶段,Eden区一直保持100%并且进程僵尸(有同学反映其它机器也有Survivor一直100% hang住的情况):


进程hang住后,无法用jstack dump栈信息,执行jstack -F后进程恢复服务,minorGC结束。可以看到整个hang住的过程持续了六万多秒:


jstack -F dump出来的栈信息所有应用线程都处于BLOCKED状态,没有死锁。当时其实应该用jstack -F -m命令将native线程的栈也dump出来才方便定位jvm层面的问题,jstack -F只能dump出java线程的栈。

开始怀疑是hotspot jvm的bug,在Oracle官网找了很久没有找到类似情况。

后来京东的一位同学说这种情况可能是centos内核bug导致,并且发给了我这篇文章:
Red Hat Linux严重Bug将影响基于Haswell架构的服务器

文章原始出处来自于Azul的CTO发表的文章:
https://groups.google.com/forum/#!topic/mechanical-sympathy/QbmpZxp6C64

文章中也提到了受到影响的linux版本:


我们的版本确实属于以上的版本,所以解决方法就是打了个升级patch,将内核升级。升级后服务没有再发生以上问题。
  • 大小: 308.4 KB
  • 大小: 18.6 KB
  • 大小: 109.3 KB
1
2
分享到:
评论

相关推荐

    Oracle密码延迟验证导致的系统HANG住.docx

    Oracle数据库在11g版本引入了一项名为"密码延迟验证"的安全特性,这一特性在特定情况下可能导致系统响应缓慢,甚至hang住。这个问题通常出现在修改了应用程序账户密码之后,如果应用服务器未能及时更新数据库连接...

    javacore文件及heapdump文件分析

    这两个文件也可以手工生成,在 unix/linux 上,可以使用 ps -ef|grep java 命令找到 Java 进程 id,然后使用 kill -3 进程号命令生成这两个文件。 javacore 文件的分析可以帮助我们解决一些问题,如:100% CPU ...

    一篇分析诊断被"hang"住数据库的资料(Oracle Performance Diagnostic Guide Hang Locking)

    从提供的文件内容中,我们可以提取出与Oracle数据库被“hang”住和锁定问题相关的知识点。Oracle性能诊断指南(Oracle Performance Diagnostic Guide)中专门有一部分是关于Hang/Locking问题的分析和解决方法。下面...

    Oracle数据库hang分析

    在分析阶段,如果确定数据库出现了真正的hang问题,或者有会话被“卡住”(stuck)或锁定(locked),则需要进一步确定问题的原因。这可能涉及到数据库中的 blocker(阻塞者)和waiter(等待者)数据的分析。阻塞者...

    linux-hang一个1Kb大小的Docker容器

    hang一个1Kb大小的Docker容器

    MTK hang机抓取Log方法

    需先确认设备在Windows设备管理器中的可见性,再利用`adb devices`命令验证ADB连接有效性,必要时先运行`adb kill-server`确保ADB客户端未被卡住。 - **ADB诊断**:确认ADB shell功能正常,使用`adb shell getevent`...

    java 导入及判断的Excel 使用方法

    在Java编程中,处理Excel文件是一项常见的任务,无论是读取数据、写入数据还是进行复杂的分析,Excel都因其直观的格式和广泛的应用而备受青睐。本文将深入探讨Java中导入和判断Excel的使用方法,结合实例分析,帮助...

    数据库异常hang住解决

    下午内网测试库同事反应查询更新数据很慢,有时甚至表都打不开,后来通过服务器【linux】的top命令查看了下,cpu和mem占用正常,但wait高达80%多(下面两图显示的是问题前后观察EM对比的截图,版本是oracle10gR2,EM...

    JVM 输出 GC 日志导致 JVM 卡住

    此外,作者还建议使用 async_profiler 工具,因为它可以帮助作者发现进程本身的 CPU 占用激增的情况。 JVM 输出 GC 日志导致 JVM 卡住是一个复杂的问题,需要作者通过多方面的分析和监控来定位和解决问题。 知识点...

    诊断数据库hang

    - **验证操作系统资源使用情况**:检查是否有进程过度消耗CPU或内存,导致数据库性能下降。 - **验证数据库是否真正挂起**:通过分析V$SESSION_WAIT等视图,确定是否存在长时间等待的会话。 #### 确定原因 一旦...

    hangman:用Java编写的hang子手游戏

    用Java编写的hang子手游戏 使用UNIT测试和UI测试的Java项目示例。 命令: 要编译和运行单元测试: ./gradlew test 要运行UI测试(在FireFox中): ./gradlew uitest_firefox 要运行UI测试(在Chrome中),请...

    hangman:Java hang man演示

    《Java实现的“hangman”游戏详解》 “hangman”游戏是一款经典的猜词游戏,玩家需要通过输入字母来猜测一个未知的单词,每猜错一次,画面上的“绞刑架”就会增加一部分,直到猜完所有错误次数或者猜出正确单词为止...

    Skype4Java开发文档以及示例代码

    call.hangup(); // 挂断来电 } }); ``` ### 4. 注意事项 - 必须确保Skype客户端已登录并且运行在与Java应用程序相同的计算机上。 - 使用Skype4Java时需要遵循Skype的开发政策,避免滥用API导致账户被封禁。 - ...

    VM异常hang死处理方法

    ### VM异常Hang死处理方法详解 #### 故障现象描述 在日常的IT运维工作中,可能会遇到虚拟机(VM)挂起(Hang)的情况。这种现象通常表现为以下几种情形: 1. **网络层面不可达**:通过`ping`命令监测发现虚拟机...

    使用hanganalyze分析数据库hang

    - **3级**:在前两级基础上,dump出处于IN_HANG状态的进程,开始呈现具体的阻塞信息。 - **4级**:进一步dump出在等待链中的blockers(状态为LEAF/LEAF_NW/IGN_DMP),提供更详细的阻塞源头信息。 - **5级**:包含4...

    linux中进程问题

    本代码通过一个简单的多线程场景展示了如何在Linux环境下使用信号量和线程来实现进程间的同步和通信。通过父子线程之间的互动,模拟了一个家庭成员之间传递水果的过程,形象地演示了信号量的使用方法。

    java写的电话源代码

    3. `hangUp()`: 结束通话,可能涉及到通话时间的记录。 4. `sendSMS(String message, String recipient)`: 发送短信,需要处理短信内容和接收方号码。 5. `receiveSMS()`: 接收短信,可能有一个消息队列来存储接收到...

    core java 卷一英文版

    《Core Java Volume I - Fundamentals 10th Edition》是一本经典的Java编程教材,由Cay S. Horstmann和Gary Cornell合著。这本英文版的书籍是Java开发者的必备参考,尤其对于想要深入理解Java核心概念和技术的读者来...

    Hang-Man-Game:我在 12 年级做的一个 Java 摇摆项目

    《Java摇摆项目:Hang-Man-Game的编程实践与学习历程》 在12年级时,我接触并完成了一个名为“Hang-Man-Game”的Java编程项目。这是一个基于Java Swing库开发的经典文字游戏,旨在锻炼玩家的词汇量和推理能力。在...

Global site tag (gtag.js) - Google Analytics