3

我正在使用安装了 JRockit 的 weblogic 10.3.6。我正在使用 64 位系统和 Linux 作为操作系统。我在其中安装了一个 adf 应用程序。只有几个用户使用该应用程序。但是安装 WLS 的服务器机器每周都会出现故障,导致内存不足。所以我们必须每周重新启动它。当我浏览时,我发现通过调整堆大小和其他内存参数可以使 WebLogic 更加稳定。

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

我的问题是

  1. 这些论据是什么?

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

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

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

谢谢,

拉克什

4

2 回答 2

6

Xms 和 Xmx 是 Java 程序可以使用的最小和最大堆(主要是存储对象的位置)大小。

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

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

Xmx 的新值可以是 1024m 或更大。您(或性能团队,如果有的话)必须对您的应用程序和不同的 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—>Arguments:(TextArea)。
  • 输入:-Xms256m -Xmx1024m并保存。

哦,顺便说一句,JRockit没有任何 PermSize 的概念。

于 2012-10-23T08:35:02.833 回答
3

获得JVM 参数的基本知识。

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

于 2012-10-22T08:01:08.667 回答