java虚拟机性能优化场景及方法

场景1:Full GC时间太长

(1)降低堆内存大小。这样能增加full gc的次数,但每次full gc的时间会降低

(2)定时出发full gc。如果full gc的频率不高,如十几个小时才触发一次,则可以考虑做个定时器,显式地调用System.gc()进行full gc。

场景2:经常发生OutOfMemory内存溢出

(1)java.lang.OutOfMemoryError: Java heap space

可以参考我的另一篇文章https://blog.csdn.net/chenglibility/article/details/107348928

(2)调整直接内存大小。这种情况java堆内存够用,但整个服务器内存溢出,可能是NIO的一些用法会导致分配了过多的堆外内存,即直接内存。可以通过降低直接内存大小来防止这个情况。具体方法为调整-XX:MaxDirectMemorySize

场景3:虚拟机经常崩溃

(1)检查调用外系统是否有大量线程等待。若外系统响应时长较长,则本系统会积压大量未结束的请求,超过虚拟机承受能力而导致崩溃。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。