java - Ubuntu 服务器中出现 OutOfMemory 错误

标签 java memory ubuntu out-of-memory ram

我有一个用 java 编写的服务器,在 Windows 7 中运行良好。但是当我在 Ubuntu 中安装相同的服务器时,它显示内存不足错误,服务器有 8 GB 内存,而我们的服务器仅使用 70% 的内存,它显示内存不足错误。并且CPU使用率在内存不足时达到峰值。

  1. 如何将剩余的 30% 内存分配给我的应用程序?
  2. 如何增加 Ubuntu 中分配给应用程序的内存限制?

内存不足错误不会在 Windows 中出现,仅在 Ubuntu 中出现。在 Windows 任务管理器中显示 100% CPU 使用率和完整 RAM 使用率。我希望在 Ubuntu 中实现这个性能。

最佳答案

如果你的意思是 Java 抛出 OutOfMemoryError ,你首先需要明白为什么。您可能想要选择像 VisualVM 这样的分析器(免费)或YourKit (不是免费的)看看内存中发生了什么。之后,您可以决定适当的操作,例如提高应用程序的内存效率或更改 JVM 设置以增加适当的内存分配。

首先,如果您的堆空间(老年代)不足,您可以使用 JVM 标志 -Xmx 调整可用的最大堆。例如,-Xmx1024m-Xmx1g 会将最大值设置为 1GB。如果是永久代(PermGen),您可以使用 -XX:MaxPermSize JVM 标志为其分配更大的整体堆 block ,例如 -XX:MaxPermSize=256m。请注意,增加永久代的大小将相应地减少其他堆段可用的内存量。

有关这些和其他 JVM 内存设置的完整详细信息可以在 Java application launcher page 上找到。和 HotSpot VM Options page (假设您使用的是 HotSpot VM)。

关于java - Ubuntu 服务器中出现 OutOfMemory 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14088686/

相关文章:

c++ - C++ 是否重新制作循环中定义的变量?

qt - 如何在 Linux 上运行 qtcreator?安装了2个版本

java - 将 mongoDB shell 命令转换为 java

Java,来自没有模式的字符串的日期

java - 在 Java 中从数据库写入 (zip) 文件的最节省内存的方法是什么?

c - 在C中初始化数据结构来管理内存池

facebook - 删除 facebook HipHop (hhvm) Ubuntu 并调试它

php - 用php获取电脑的用户

java - jsp 表单的字段验证

java - 从实现类中获取接口(interface)名称