服務器(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
這些參數可以配置爲使用100GB嗎?
我們用它來運行子第二GC暫停一個24GB的64位JVM而服務每秒100個多頁的請求:
-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位的,當然VM)
不直接關係到你的問題,但我發現這個有趣的Google TechTalks video on Ehcache - 大約堆格雷格·福舉行會談大小問題在那裏。
感謝您的額外信息:) – MartK 2011-03-18 15:55:51
正如Mat介紹的那樣,這些巨大的堆可能會遇到垃圾收集的問題,但隨後有一個很大的堆,您可能正在使用多核機器,您可以使用基本上運行在其自己核心上的收集器。
否則-Xm接受的 'G' 爲單位,所以你可以寫-Xmx100g
聯機幫助的Java(在OS X)說:
在Mac OS X平臺,上 限制當以32位模式(-d32)運行時,此值在大約 2100m減去開銷量時,和 大約127t減去在64位模式下運行的開銷 (-d64)。在Solaris 7和Solaris 8 SPARC 平臺上,此 值的上限約爲4000m 減去開銷量。在Solaris 2.6 和x86平臺上,上限爲 大約2000m減去 開銷數額。在Linux平臺上, 的上限約爲2000m減去 的開銷量。
這將是非常有益的,感謝您的答案。 – MartK 2011-03-18 11:34:39
希望我的回答有幫助。這不是JBoss特有的,也許你可以編輯這個問題來指定Java? – WhiteFang34 2011-03-18 23:46:03
你的答案與java有關,但我的問題does not。我聽說tomcat最大內存限制不能像JBoss一樣增加。這就是爲什麼我問這個問題。也許你聽說過tomcats最大內存限制問題? – MartK 2011-03-20 10:25:41
JBoss和Tomcat在使用更多內存方面沒有區別。兩者都受限於配置Java的內存量。 – WhiteFang34 2011-03-20 10:55:34