背景:服务器是windows server 2008 R2系统,点击一个导出报表功能按钮,页面报如下错:

tomcat控制台里也报类似的错误,下面说一下定位和调优方法————
定位:
1、打开cmd控制台,因为是windows系统,使用ps -ef|grep java报不是内部命令,然后我还特意百度了一下T T
tasklist可以查看全部进程的进程id,如果不确定是哪个,可以在window任务管理器,跳转到进程查看tomcat运行的是哪个进程,其实就是java.exe啦~~
或者使用命令:netstat -aon |findstr "8080",根据端口号查看pid,这两种方法都是可以的~
2、然后根据pid查看是哪个类或方法占用内存最多,使用的命令是:jmap -histo 1100 >1.txt,1100是我tomcat的pid
3、cmd里直接1.txt打开日志,查看占用内存最高的是哪个类~推荐使用notepad++等专门的文本查看工具,用记事本打开显示得很乱~
4、然后开发小哥哥就可以参考一下占用内存最大的类是哪个方法,看是否是程序问题
同时,作为测试,我们也应该具备一些JVM调优的基本能力啦,说不定bug就可以迎刃而解了哦^_^
调优:
网上百度了很多tomcat6报Java heap space错解决办法
Tomcat OutofMemoryError:Java heap space定位与优化实战

当服务器在Windows Server 2008 R2上遇到导出报表时出现OutofMemoryError,本文介绍了如何定位问题。通过tasklist命令查找Java进程,使用jmap获取内存占用最高的类,以及进行JVM调优,如设置JAVA_OPTS为-Xms800m -Xmx1024m -XX:MaxNewSize=256m,以解决内存溢出问题。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



