内存不足 - Web 应用程序
我试图找出笔记本电脑上 Jetty 6.1.22 内存不足的原因。我有 2 个 Web 应用程序运行 JBoss Seam、Hibernate(带有 EHCache)和单独的 Quartz 调度程序实例。
当负载很小时,服务器会抛出 OutOfMemory 异常。
我可以寻找什么?您是否认为我没有正确关闭输入流或文件的句柄?
我尝试使用 Netbeans 分析我的应用程序,但它时断时续。通常,即使它没有使用那么多的 CPU 或内存,它也会最终锁定。
沃尔特
I am trying to figure out why Jetty 6.1.22 is running out of memory on my laptop. I have 2 web applications running JBoss Seam, Hibernate (with EHCache), and separate Quartz scheduler instances.
With little load, the server dies throwing OutOfMemory.
What can I look for? Would you think that I am not properly closing handles for input streams or files?
I tried profiling my application with Netbeans, but it works off and on. Usually, it ends up locking up even though it doesn't use that much CPU or memory.
Walter
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
JVM的执行参数是什么?
尝试通过 -Xms(默认)-Xmx(最大)和 -Xmn(最小)JVM 标志增加可用堆内存。
您还可以使用 JConsole 监视应用程序服务器的执行情况。它通常有助于找出应用程序泄漏的位置。
What are you JVM's execution parameters?
Try increasing available heap memory though -Xms (default) -Xmx (max) and -Xmn (min) JVM's flags.
You can also monitor your Application Server execution with JConsole. It's usually helpful for finding out where is you application leaking.
在调用 jvm 时添加 -XX:+HeapDumpOnOutOfMemoryError ,当出现 OOM 情况时,您将得到一个 .hprof 文件转储。稍后你可以用几个工具打开它,你就能看到内存去了哪里...
我使用的工具是 Eclipse内存分析器,相当不错。
add -XX:+HeapDumpOnOutOfMemoryError when invoking the jvm and when you get the OOM situation you will get a .hprof file dumped. You can open it later with several tools and you'll be able to see where the memory is going...
The tool I use is Eclipse Memory Analyzer, it's pretty good.
我强烈建议使用 JDK 中的 jvisualvm 附加到这个麻烦的程序。
这使您可以调查一段时间内的内存和 CPU 使用情况并检查一般情况。
I can strongly recommend attaching to the troublesome program with jvisualvm in the JDK.
This allows you to investigate memory and cpu usage over time and inspect what happens in general.