我使用安装了JRockit的weblogic 10.3.6。我使用的是64位系统,Linux作为操作系统。我安装了一个adf应用程序。只有几个用户使用该应用程序。但是安装了WLS的服务器机器每周都会停机,造成内存不足。所以我们每周都要重启它。当我查看时,我发现通过调整堆大小和其他内存参数可以使WebLogic更稳定。
示例: - Xms256m --Xmx512m MaxPermsize为128m
我的问题是
这些论点是什么?
这些论点如何相互关联?
如何确定这些参数的值?
内存不足的其他原因是什么?
谢谢,
勒凯什
答案 0 :(得分:5)
Xms和Xmx是java程序可以使用的最小和最大堆(基本上是存储对象的位置)。
在您的情况下,java程序是部署应用程序的WebLogic服务器。默认情况下,WebLogic服务器设置的Xms和Xmx值为:256m和512m。
看起来您的应用程序需要超过512MB的堆内存。因此,您需要增加最大堆大小(Xmx)以避免频繁的OutOfMemory错误。
Xmx的新值可以是1024米或更多。您(或性能团队,如果有的话。)必须对您的应用程序和不同的Xmx值进行严格的性能,可伸缩性,可靠性测试,以确定最适合应用程序的内容。
设置内存参数(即Xms,Xmx)可以在脚本级别完成(如果您使用startWebLogic.sh/startManagedWebLogic.sh脚本来启动服务器)。
脚本级别更改:
USER_MEM_ARGS="-Xms256m -Xmx1024m"
SERVER_NAME
变量将此设置从服务器更改为服务器。例如,要仅为非管理员服务器设置此设置,请插入[ "${SERVER_NAME}" != "AdminServer" ] && USER_MEM_ARGS="-Xms256m -Xmx1024m"
控制台更改(仅当您使用管理控制台启动托管服务器时):
-Xms256m -Xmx1024m
并保存。哦,顺便说一下JRockit does not有任何PermSize的概念。
答案 1 :(得分:3)
掌握JVM parameters的基本知识。
简单地将几个JVM内存参数设置为更高的值将无济于事,但只会将错误移至未来。您必须分析应用程序以找出真正的问题。 JRockit附带了一个非常好的内存分析工具Mission Control。观看demo,这将有助于找出应用程序的哪个部分导致内存不足错误。