我得到“Java HotSpot(TM)64位服务器VM警告:异常java.lang.OutOfMemoryError发生调度信号SIGTERM到...

栏目: Java · 发布时间: 7年前

内容简介:翻译自:https://stackoverflow.com/questions/11095094/i-get-java-hotspottm-64-bit-server-vm-warning-exception-java-lang-outofmemor

我在VPS上有tomcat web应用程序,tomcat有时(大约每月一次)崩溃,catalina.out中出现以下错误:

Java HotSpot(TM) 64-Bit Server VM warning: Exception java.lang.OutOfMemoryError occurred dispatching signal SIGTERM to handler- the VM may need to be forcibly terminated.

以下是我的配置的一些细节:

> VPS:debian-5.0-x86_64

> RAM:2.5 gb,

>虚拟处理器:8

> HDD:60gb硬盘 – 70%免费

> Tomcat 7.0

> java -version:

java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8.13) (6b18-1.8.13-0+squeeze1)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)

> Java参数:-Xms512m -Xmx1024m

我在该服务器上也有Apache-PHP.

我正在使用Munin监视服务器负载,它向我显示内存和CPU使用率始终稳定,并且在崩溃之前没有任何增加.

我也通过java.lang.Runtime类记录 java 内存使用情况,它显示jvm总是使用max200Mb内存,并且在崩溃之前没有增加.崩溃前的最后一个日志是40秒前,那个时间使用的内存是:152Mb.

我的Web应用程序还运行6-7个线程,用于从不同的公共API收集数据.这些线程在tomcat启动时启动,并且它们始终以定期休眠运行.

你能告诉我它崩溃的原因吗?我怎么才能找到原因?

让我们解开这个:

Exception java.lang.OutOfMemoryError occurred dispatching signal SIGTERM to handler- the VM may need to be forcibly terminated.

首先,看起来像JVM(Tomcat)进程发送了一个SIGTERM信号.它必须是JVM外部的东西. JVM不向自身1发送信号.

所以你需要弄清楚这是做什么的.我猜第一个猜测就是OOM杀手……但是OOM杀手使用SIGKILL而不是SIGTERM. JVM永远不会看到SIGKILL的到来!

(您可以通过查看“/ var / log / messages”…或系统记录内核消息的任何地方来确认它不是OOM杀手.请参阅 How to Configure the Linux Out-of-Memory Killer )

如果它不是OOM杀手,那么有几种方法可以找到信号源:

> Finding the source of signals on Linux with strace, auditd, or systemtap

一旦你掌握了信号的来源,你就会有线索的原因.

另一个值得注意的事情是在处理SIGTERM时发生了OutOfMemoryError.这强烈暗示(对我而言)根本原因是某些东西检测到Tomcat使用了太多内存,并且发送了一个SIGTERM以使其消失(干净利落).我猜想当时发生的事情是JVM进入操作系统要求更多的内存(处理SIGTERM)并且操作系统显示“否”,并且JVM抛出OutOfMemoryError.不幸的是,JVM现在处于无法彻底退出或恢复的状态.因此它说“虚拟机可能需要被强行终止”.

无论如何.这看起来像是一个常见的Java问题的一个相当不寻常的表现.您很可能在Tomcat中运行的webapps中存在泄漏内存的错误.如果是这种情况,唯一真正的解决方案是找到并修复错误. (增加堆大小……如果可能的话……只会解决问题.它可能会减少崩溃之间的间隔,但不太可能阻止它们.)

假设你准备好咬紧牙关:

> How to find a Java Memory Leak

1 – 除非在本机代码中做某些事情……

翻译自:https://stackoverflow.com/questions/11095094/i-get-java-hotspottm-64-bit-server-vm-warning-exception-java-lang-outofmemor


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法神探

算法神探

[美] 杰瑞米·库比卡 / 啊哈磊、李嘉浩 / 电子工业出版社 / 2017-2 / 65

《算法神探:一部谷歌首席工程师写的CS小说》围绕程序设计典型算法,精心编织了一个扣人心弦又趣味横生的侦探缉凶故事。小说主人公运用高超的搜索技巧和精深的算法知识,最终识破阴谋、缉拿元凶。其间,用二分搜索搜查走私船、用搜索树跟踪间谍、用深度优先搜索逃离监狱、用优先队列开锁及用最佳优先搜索追寻线索等跌宕起伏又富含算法精要的情节,让读者在愉悦的沉浸式体验中快速提升境界,加深对程序世界的理解。《算法神探:一......一起来看看 《算法神探》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

html转js在线工具
html转js在线工具

html转js在线工具