在同一台机器上为不同的应用程序运行多个jvms

时间:2010-03-18 07:11:31

标签: java jvm

我们的开发中经常出现内存错误。我们正在运行webshpere,e​​clipse,soap UI和maven。当我们在websphere中重启应用程序2/3次时,我们的服务器由于“内存不足错误”而停机,我们已经将wesphere中的虚拟内存设置增加到1GB。

所以我所做的是复制我们在eclipse和maven文件夹中使用的jre,以便每个使用单独的jvms。但是websphere的性能是一样的。 2/3重新启动和内存不足错误。

是否有任何可能使eclipse和maven使用除了websphere之外的不同jvms?

3 个答案:

答案 0 :(得分:3)

回答问题:

如果多次启动java,则每个自己的内存都会运行多个java副本。 Eclipse和websphere可能是单独启动的,因此请使用独立内存。你的麻烦不应该存在。

回答你的问题

内存不足

Eclipse和Websphere都可以像明天那样吞噬内存。查看-X标志,应将perm gen空间的标志添加到堆空间的标志中以获取内存消耗。还允许操作系统,窗口环境,电子邮件客户端,浏览器(500 MB - 1 GB左右,具体取决于操作系统和您正在运行的内容)的一些开销。因此可能是计算机内存不足。

更频繁地分配给jvm的内存量是不够的。 Java尚未为分配给它的应用程序启动足够的内存。由你来推断它是否是用尽的堆空间或PermGen空间。两者都可以调整,看看this website。标志是-Xmx和-XX:MaxPermSize。查看Websphere的启动脚本,因为那是抱怨的。

建议

检查哪种内存不存在,并在堆栈溢出时搜索; PermGen或Heap Space应该这样做。

答案 1 :(得分:0)

您应该在所有三个进程中将JVM Xmx参数设置为小于或等于256MB。它永远不会超过256 MB的限制(考虑到程序没有内存泄漏)

答案 2 :(得分:-1)

复制文件夹是不够的。

在Eclipse中,转到Preferences,在Java-> Installed JREs下,确保使用的JRE与WebSphere使用的路径不同。

相关问题