不建议手动gc,gc内部有自己的回收机制的,可以简单去看一下gc回收的。
windows上跑没问题,基本排除程序本身的问题 依经验判断,启动时候增加nohup参数,看看这个问题能否消失 类似:java -jar xxx.jar -nohup
关注一下。 不过,我觉得是不是 while(1)内的代码执行中间有问题,然后一直挂起,直至内存不够溢出?
长期运行的程序注意有空gc一下。
内存不够了?内存不够了?
内存溢出。。。?
jvisualvm监控下呗,图形化的看起来形象点
本人使用了java写了一套循环处理(while(1))分析的服务逻辑,但在运行1000多次后会无故停止,并没报错。希望大家能给提一些思路。 环境: 本人在 Ubuntu 16.04 上跑的java后台,后期会转移到centos 上。曾经在windows server 2008 R2 上运行类似的服务,跑上万的程序并没无故停止运行的问题。
运行终止可能出现异常或内存溢出导致服务器直接强制挂掉
首先分析一下是因素 1.外部 虚机的父级纳管系统出来问题否,父级纳管端口是否稳定, 2.内部 运行内存分配的国小导致程序内存溢出否,程序写的是否规范,与其他平台的TCP/UDP等交互是否存在超时,连接数过多等待过多的情况 能贴一下部分代码观瞻一下吗。。
-XX:+HeapDumpOnOutOfMemoryError 应用启动的时候jvm加这个参数。 如果是oom异常会生成dump文件; 或者用jmap -dump命令生成dump文件, 然后用jvisualvm或者mat工具分析dump文件。
无故中断,还是得看下异常消息,一般内存溢出概率很大
67,550
社区成员
225,863
社区内容
加载中
试试用AI创作助手写篇文章吧