【问题标题】:WEBLOGIC ulimitWEBLOGIC ulimit
【发布时间】:2013-06-27 11:22:33
【问题描述】:

我在 AIX 操作系统中使用 weblogic 12C。当我在 weblogic 中保持 ulimit=unlimited in OS 级别和 ulimit=8192 in commEnv.sh 时,我经常收到“打开的文件过多”错误。

但是当我在 weblogic 中保持 ulimit=2048 in OS 级别和 ulimit=8192 in commEnv.sh 时,服务器可以正常工作。

请回答下列问题。

  1. weblogic 是否会覆盖 OS 中的值。
  2. 如何计算 ulimit 值。
  3. 如果我大幅增加 ulimit 值或者应该限制它会发生错误。
  4. 其他 ulimit 参数(如堆栈大小、最大内存大小)是否通过文件描述符值适当设置,或者是否可以在操作系统级别设置为无限制

我也尝试在操作系统级别使用 ulimit=2000 部署服务器,并在 weblogic 中禁用 commEnv.sh 中的功能,但我再次收到“打开的文件过多”错误。

【问题讨论】:

标签: weblogic aix ulimit


【解决方案1】:

我对我的 AIX 有点生疏了,但听起来你没有正确设置 ulimit。我不相信你可以简单地说“ulimit =”;你需要告诉它你想设置哪个 ulimit。例如,要设置指定进程的最大打开文件描述符数,您可以: ulimit -n 2000

回答您的具体问题:

  1. 您的默认 ulimit 在 /etc/security/limits 中设置。有软限制和硬限制。软限制是当前设置,而硬限制是可以设置的最大值。话虽如此,Weblogic 可以“覆盖”软限制,只要它不超过硬限制。

  2. 我不确定你在这里问什么。您可以通过运行“ulimit -a”来显示当前的 ulimit 设置

  3. 这实际上取决于您的环境和您正在做什么。出于您提出这个问题的原因,将 ulimits 设置为无限制通常是不明智的:如果超出系统资源,您可能会得到不好的结果。我知道像甲骨文这样的公司会告诉您将所有内容设置为无限制,但在我看来,这是糟糕的系统管理。

  4. 文件描述符值 (-n) 与堆栈大小等完全分开...您是否需要调整其他 ulimits 真的取决于您在做什么。我知道在我们的 WebLogic 环境中,我们确实将最大文件大小 ulimit (-f) 设置为无限制,这违背了我的更好判断,同时对其他限制设置进行了最小更改(如果有)。正如你所提到的,我确实认为我们必须将 nofiles 描述符增加到 2000。

所以回到你更大的问题/问题。听起来您根本没有为 nofiles (-n) 正确设置 ulimit。听起来它需要增加,也许像你说的那样增加到2000。尝试将“ulimit -n 2000”添加到您的 commEnv.sh,但请确保它不超过您的硬限制,否则它将不起作用。

我希望这会有所帮助。

【讨论】:

    【解决方案2】:

    或者您可以按照下面的链接在操作系统本身中设置 ulimit 值,这比设置为 ulimit -n 值更强大。

    http://www.techpaste.com/2011/07/12/tuning-application-server-file-descriptor-limits/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多