【问题标题】:What actually is "java.lang.OutOfMemoryError: Java heap space" and how can i increase the Memory for Java?“java.lang.OutOfMemoryError:Java 堆空间”实际上是什么?如何增加 Java 的内存?
【发布时间】:2013-12-22 02:39:18
【问题描述】:

实际上我在CentOS v6.3 64-bit Linux 上运行Wowza Media Server。然后它曾经在某些日子里突然停止,每当我检查日志时,我总是看到:

java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space

如果我必须为 Java 增加内存空间:

  • 请问我该怎么做?
  • 在我的专用服务器中有 72GB,而 60GB 始终是免费的,我可以像这样将所有 60GB 都提供给 Java 吗?

【问题讨论】:

  • 64 位 CentOS v6.3。它在日志中显示为这样。似乎没什么好笑的。
  • 很抱歉,如果你有 72GB 内存和 x86 架构,那会很有趣。但是请检查您安装的 JRE 是否为 x86。如果是这样,java 不能使用超过 2GB。
  • java 版本 "1.7.0_40" Java(TM) SE Runtime Environment (build 1.7.0_40-b43) Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)
  • OOME时保留多少mem java进程?有多少内存是免费的?
  • 我不明白你的意思。我的 RAM 总是 60GB(至少)空闲。

标签: java linux memory heap-memory wowza


【解决方案1】:

您可以使用 -Xms 和 -Xmx 命令行参数更改分配给 JVM 使用的内存量。

【讨论】:

    【解决方案2】:

    你可以通过在Wowza的bin目录下的setenv.sh文件中设置-Xms和Xmx参数来调整内存使用。

    【讨论】:

    • 我应该(或)我可以放弃多少,好吗? (正如我提到的,我有 60GB 的免费空间)。而且,该文件似乎有点难以理解。请问具体需要修改哪个地方?
    • “多少”的答案实际上取决于您的系统和使用情况。您可以通过监控系统一段时间来进行试验。 (Wowza 文档中可能有关于它的指南,我不太确定)。我的 setenv.sh 文件中有一行 JAVA_OPTS="-server -Xmx1200M" 将最大内存使用量设置为 1200MB。您可以查找类似的行并对其进行编辑。
    • @シリウス HotSpot 的默认值,没有 -Xmx,只有 1 GB,所以一开始就增加到 8 GB。
    • 64 位服务器 VM 的默认最大值不是取决于现在可用的总内存吗?无论如何,鉴于问题描述,我怀疑此媒体服务器应用程序存在内存泄漏。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    相关资源
    最近更新 更多