注意:我是 Java 新手(我是 Python 开发人员;JVM 的想法对我来说很陌生)
假设您有一台带有 8 核 160GB RAM 的服务器
如果您使用 -xms 100G 运行 Java 程序,它不会抛出任何错误。 如果使用 -xms -100G 运行两个或多个 Java 程序(多个 JVM)会怎样? 如果内存允许,在同一主机上运行多个 JVM 是否可以接受?
如有任何引用资料,我们将不胜感激!
最佳答案
没有(理智的)操作系统会给您实际内存来备份您的需求,听说过交换空间
吗?对于 python 来说也是如此,内存管理没有什么不同,因为 python 仍然使用虚拟内存进行操作,对吗?
如果您确实希望通过物理内存备份虚拟机的内存,可以使用以下标志:-XX:+AlwaysPreTouch
,但使用它会意味着您的虚拟机使用的所有内存都必须归零(“触及”),这意味着启动速度会较慢 - 对于如此大的内存量尤其如此。
-Xmx
和 -Xms
实际上只是启动标志,告诉您想要的初始内存和想要的最大内存(通常它们具有相同的值) ),但这仍然是操作系统请求的虚拟内存。
关于java - -xms 总和大于主机 RAM 的多个 JVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54296903/