java - VMware guest 中的 JVM 堆大小调整

标签 java memory vmware

这个问题的措辞可能更好:在 VMware ESX 等管理程序上运行 Java 服务器如何影响 Java 堆?

  • 从操作系统/管理程序的角度来看,对 JVM 堆的访问是随机的
  • guest 操作系统或管理程序很难优化随机访问的内存
  • 鉴于此,管理程序能否检测到 JVM 堆中未使用的页面?

Java 服务器应用程序的传统观点认为,如果您在 JVM 启动时分配所有堆,而不是允许堆在需要时动态调整大小,则性能最佳。换句话说,如果您将堆大小设置为 1GB,您的 Java 进程将获取 1GB 的连续虚拟地址空间(加上二进制文件所需的任何内容),其他应用程序不再可用的内存。

VMware 是否足够聪明,可以检测到其中一些堆实际上未被使用?这对 GC 性能有何影响?让堆在 VMware 中动态调整大小会更好吗?哪些 GC 策略最适合 VMware guest ?

此外,有人能给我指出在虚拟化环境中调整 JVM 堆的指南吗?

最佳答案

与我的问题相关:

这是一个 PDF,它提供了在 VMware guest 上运行 Java 的注意事项的广泛概述:link text

关于java - VMware guest 中的 JVM 堆大小调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/439777/

相关文章:

java - 如何在不同类型的 ArrayList 中使用相同的方法?

java - Intellij IDEA 2 :2016. 2.4-1 : Unsupported Java Version: Cannot start under Java 1. 7.0_111-b01 : Java 1. 需要 8 或更高版本

python - Sklearn K-Fold 交叉验证内存问题

memory - 限制 64 位 Ubuntu 12.10 上的可用内存

networking - 如何在局域网中连接多个虚拟机

linux - Linux 中的 Vmware 服务器安装

linux - 通过 Vmware 构建 linux 应用程序

java - Xalan DTMManager.newInstance 性能问题

java - 我如何迭代 [[tokens]] 列表并将它们替换为文本框输入?

c++ - 在C/C++中,如何获取虚拟内存空间中的数据?