weblogic服务器11g的内存不足问题

时间:2012-10-22 07:08:24

标签: linux weblogic oracle-adf weblogic11g

我使用安装了JRockit的weblogic 10.3.6。我使用的是64位系统,Linux作为操作系统。我安装了一个adf应用程序。只有几个用户使用该应用程序。但是安装了WLS的服务器机器每周都会停机,造成内存不足。所以我们每周都要重启它。当我查看时,我发现通过调整堆大小和其他内存参数可以使WebLogic更稳定。

示例: - Xms256m --Xmx512m MaxPermsize为128m

我的问题是

  1. 这些论点是什么?

  2. 这些论点如何相互关联?

  3. 如何确定这些参数的值?

  4. 内存不足的其他原因是什么?

  5. 谢谢,

    勒凯什

2 个答案:

答案 0 :(得分:5)

Xms和Xmx是java程序可以使用的最小和最大堆(基本上是存储对象的位置)。

在您的情况下,java程序是部署应用程序的WebLogic服务器。默认情况下,WebLogic服务器设置的Xms和Xmx值为:256m和512m。

看起来您的应用程序需要超过512MB的堆内存。因此,您需要增加最大堆大小(Xmx)以避免频繁的OutOfMemory错误。

Xmx的新值可以是1024米或更多。您(或性能团队,如果有的话。)必须对您的应用程序和不同的Xmx值进行严格的性能,可伸缩性,可靠性测试,以确定最适合应用程序的内容。

设置内存参数(即Xms,Xmx)可以在脚本级别完成(如果您使用startWebLogic.sh/startManagedWebLogic.sh脚本来启动服务器)。

脚本级别更改:

  • 打开setDomainEnv.sh并搜索“IF USER_MEM_ARGS环境变量已设置”并在下一行中插入USER_MEM_ARGS="-Xms256m -Xmx1024m"
  • 您甚至可以使用保存正在启动的服务器的SERVER_NAME变量将此设置从服务器更改为服务器。例如,要仅为非管理员服务器设置此设置,请插入[ "${SERVER_NAME}" != "AdminServer" ] && USER_MEM_ARGS="-Xms256m -Xmx1024m"

控制台更改(仅当您使用管理控制台启动托管服务器时):

  • 登录AdminConsole-> Environments-> Servers-> - > Configuration-> ServerStart->参数:(TextArea)。
  • 输入:-Xms256m -Xmx1024m并保存。

哦,顺便说一下JRockit does not有任何PermSize的概念。

答案 1 :(得分:3)

掌握JVM parameters的基本知识。

简单地将几个JVM内存参数设置为更高的值将无济于事,但只会将错误移至未来。您必须分析应用程序以找出真正的问题。 JRockit附带了一个非常好的内存分析工具Mission Control。观看demo,这将有助于找出应用程序的哪个部分导致内存不足错误。