相关疑难解决方法(0)

如何计算(并指定)java进程允许的总内存空间?

我有一个系统不能为 Java 进程提供超过 1.5 Gb 的容量。因此,我需要一种确切的方法来指定 java 进程设置,包括 java 中的所有内存类型和可能的 fork。

一个特定的java进程和系统来说明我的问题:

我当前的环境是 Ubuntu Linux 9.10 下的 java 1.6.0_18。

我使用以下 JVM 选项启动大型 Java 服务器进程:“-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m”

现在,“top”命令报告该进程使用 1.6GB 内存......

问题:

1 - 如何计算java进程使用的最大空间?如果可能,请提供准确的公式。( Smth. Like: max.heap + max.perm + stack + jvm space = maximal space )

2 - 就我而言,Linux 下臭名昭著的分叉行为是什么?分叉的 JVM 会占用额外的 1.6 GB(导致总共 3.2 Gb 的已用内存)吗?

3 - 必须使用哪些选项才能绝对确保任何时候使用的内存不超过 1.5GB?

谢谢你

@rancidfishbreath:“ulimit”将确保java不能占用超过指定数量的内存。我的目的是确保 java 永远不会尝试这样做。

java jvm memory-management

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

jvm ×1

memory-management ×1