2010-09-26 49 views
1

關於爲服務器端用Java編寫的GWT網站選擇託管服務。 有沒有人對JVM mem設置有一些很好的指導。某些託管服務正在限制JVM內存。我被告知每個CPU核心有一個JVM,但是mem設置如何?服務器端的Jvm設置

最好的問候,

尼克拉斯·林德伯格

+0

誰告訴你「每個核心有一個JVM」?這只是一個壞建議。 – skaffman 2010-09-26 14:01:41

+0

嗨!感謝您的意見。我正在閱讀其他一些電子商務開源項目,部署的準則就是這樣。在兩個核心系統上使用兩個單獨的JVM。這聽起來是個好主意 - 可能有些JVM實現在使用多核的全部功能時遇到問題。取而代之的是負載平衡器將請求分割到不同的JVM以最大化吞吐量。你能解釋爲什麼這是一個壞主意嗎? – Niclas 2010-09-29 12:06:30

回答

0

多個JVM會增加內存佔用。我們曾經運行過單個JVM,即使是64個核心機器也是如此。您需要相應地調整JVM參數。 請參見以下鏈接

http://docs.sun.com/source/817-2180-10/pt_chap5.html http://javahowto.blogspot.com/2006/06/6-common-errors-in-setting-java-heap.html

0

這取決於需求的應用程序。您可以從一定的大小開始,例如:

-Xms512m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m 

您需要使用JConsole監視JVM並查看它是否足夠好。您可以根據您的顯示器結果調整參數。基本上,-Xms應該等於-Xmx,這可以減少CPU開銷以增加堆大小。