2011-03-18 65 views
6

服務器(Jboss,Tomcat等)可以使用多少內存?例如,如果服務器有128GB內存,它可以使用至少100GB的內存嗎?我在本地使用這些參數:應用程序服務器最大內存限制

-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512 

這些參數可以配置爲使用100GB嗎?

+0

希望我的回答有幫助。這不是JBoss特有的,也許你可以編輯這個問題來指定Java? – WhiteFang34 2011-03-18 23:46:03

+0

你的答案與java有關,但我的問題does not。我聽說tomcat最大內存限制不能像JBoss一樣增加。這就是爲什麼我問這個問題。也許你聽說過tomcats最大內存限制問題? – MartK 2011-03-20 10:25:41

+0

JBoss和Tomcat在使用更多內存方面沒有區別。兩者都受限於配置Java的內存量。 – WhiteFang34 2011-03-20 10:55:34

回答

8

我們用它來運行子第二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以獲得更好的性能,但是您必須首先爲您的操作系統啓用大頁面支持。

3

你會碰到這種堆大小(可能)戲劇性的GC暫停。 (除此之外,我不知道的硬限制,只要您運行的是64位的,當然VM)

不直接關係到你的問題,但我發現這個有趣的Google TechTalks video on Ehcache - 大約堆格雷格·福舉行會談大小問題在那裏。

+0

感謝您的額外信息:) – MartK 2011-03-18 15:55:51

4

正如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減去 的開銷量。

+0

這將是非常有益的,感謝您的答案。 – MartK 2011-03-18 11:34:39

相關問題