如果在系统代码无误,没有内存泄露的情况下,增大请求量,会不会发生爆内存的错误呢?(由于请求量增加产生大量对象来不及回收?)我的理解是只要代码没有问题,请求量不断增加只是多次触发GC动作,GC之后,内存又会降下来,这样系统可能会变慢,但是不会爆掉内存。(始终在一个区间浮动)
小弟主要是想对堆内存进行监控,如果内存(规定时间内)一直处于不断增长状态就说明内存泄露了(GC后释放不了),然后重启机器。不知道这样是否合理,但是又担心如果访问量上升可能会造成堆内存上升影响判断。

解决方案 »

  1.   

    长时间高负荷使用来测试,迫使程序发生Full GC,来检查有没有内存泄露。
    如果内存一直上升,发生FullGC后仍然有规律的上升(回不到上次的低点),那么肯定有内存泄露了。
    如果没有泄露还是发生了OutOfMemory,那么应该调节JVM的heapsize。
      

  2.   

    访问量只会影响速度,不会造成OutOfMemory,因为系统是分时多任务的,任务多了就是队排的长了......