服务器(Jboss、Tomcat等)可以使用多少内存?例如,如果服务器有128GB的内存,它可以使用至少100GB吗?我在本地使用以下参数:
-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512
这些参数能够配置以使用100GB吗?
服务器(Jboss、Tomcat等)可以使用多少内存?例如,如果服务器有128GB的内存,它可以使用至少100GB吗?我在本地使用以下参数:
-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512
-Xms24g -Xmx24g -XX:MaxPermSize=256m -XX:NewRatio=4 -XX:SurvivorRatio=8
-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+DisableExplicitGC
-XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSClassUnloadingEnabled
-XX:+CMSScavengeBeforeRemark -XX:CMSInitiatingOccupancyFraction=68
如果您的服务器有足够的内存,那么您应该可以指定100GB。由于我们使用的是低于32GB的内存,因此我们还使用-XX:+UseCompressedOops
来减少64位寻址的开销。此外,我们还使用-XX:+UseLargePages
以获得更好的性能,但是您需要先为您的操作系统启用大页支持。
如果使用那种堆大小,你可能会遇到(很大程度上)引起注意的GC暂停。当然,只要你使用64位虚拟机,我不知道有硬性限制。
虽然与你的问题没有直接关系,但我发现这个Ehcache的Google TechTalks视频很有趣——Greg Luck在其中谈到了堆大小问题。