我在 VPS 上有 tomcat web 应用程序,tomcat 有时(大约每月一次)在 catalina.out 中崩溃并出现以下错误:
Java HotSpot(TM) 64 位服务器 VM 警告:向处理程序发送信号 SIGTERM 时发生异常 java.lang.OutOfMemoryError - 可能需要强制终止 VM。
以下是有关我的配置的一些详细信息:
VPS:debian-5.0-x86_64
内存:2.5GB,
虚拟处理器:8
硬盘:60gb 硬盘 - 70% 免费
雄猫 7.0
java-版本:
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。
我的网络应用还运行 6-7 个线程,从不同的公共 API 收集数据。这些线程在 tomcat 启动时启动,并且它们始终以周期性睡眠运行。
你能告诉我为什么会崩溃吗?我怎样才能找到原因?