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

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

内容简介:翻译自: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


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

查看所有标签

猜你喜欢:

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

Single Page Web Applications

Single Page Web Applications

Michael Mikowski、Josh Powell / Manning Publications / 2013-9-30 / USD 44.99

Code for most web sites mostly runs on the server. When a user clicks on a link, the site reacts slowly because the browser sends information to the server and the server sends it back again before di......一起来看看 《Single Page Web Applications》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具