今天一台java帐号服上报了outofmemory,这种错误出现,大多数情况都是有内存泄露导致的。
看程序运行目录下自动生成了 java_pid32123.hprof 文件。这是java自动dump出来的文件,里面记录了内存不足时的内存信息。
可以用jhat打开hprof文件。
耗时会比较长,耐心等待。
上面的7000,是指打开了一个http 7000端口,我们可以通过浏览器进行查看。
通过浏览器打开后,拉到最后面:
点击show instance counts for all classes
看到最上面几行,基本上就可以确认了SocketRunner出现了内存泄露。
生成了大量socketrunner,导致无法及时处理,最终耗尽了所有内存。
近期评论