Glassfish
如何將 Glassfish 啟動時間從 2 分鐘減少到可以接受的時間?
我在 Amazon EC2(彈性計算雲)的 Ubuntu 12.04 微型實例上執行 Glassfish Open Source Edition v3.1.1。我已經用一個應用程序配置了一個域。當我使用 啟動域時
time asadmin start-domain
,它會報告以下內容:Waiting for domain1 to start ............................ (...) Command start-domain executed successfully. real 2m6.599s
兩分鐘……什麼需要兩分鐘?有什麼辦法可以加快這個過程,還是應該為我的應用程序伺服器選擇其他解決方案,如 Tomcat 或 Jetty?在我的本地 Windows 8 客戶端電腦上重新啟動 Glassfish 時,需要幾秒鐘,而不是幾分鐘。雖然我意識到我的電腦有更多的硬體,但啟動一個簡單的應用程序伺服器不應該需要兩分鐘。
我已嘗試按照其他 討論中的建議將以下兩個 JVM-OPTIONS 添加到域配置文件中,但無濟於事:
-Djava.net.preferIPv4Stack=true
和Dcom.sun.enterprise.tools.admingui.NO_NETWORK=1
更新: 使用 進行兩次啟動後
--verbose
,這是兩個有趣部分的編輯比較:執行#1
[#|2013-03-15T11:32:48.597+0000| Created virtual server [__asadmin]|#] [#|2013-03-15T11:33:12.244+0000| Virtual server [server] loaded default web module []|#] [#|2013-03-15T11:33:15.973+0000| Scanning for root resource and provider classes in the packages:
執行#2
[#|2013-03-15T11:36:10.707+0000| Created virtual server [__asadmin]|#] [#|2013-03-15T11:36:25.127+0000| Virtual server [server] loaded default web module []|#] [#|2013-03-15T11:37:37.198+0000| Scanning for root resource and provider classes in the packages:
此處過去 bin 的 run#2 的完整日誌
值得注意的是,兩次執行中第二行和第三行之間的時間差異很大。(3 秒 vs 1 分鐘+)
ls
我還可以補充一點,當伺服器啟動時,控制台響應在第二個 SSH 視窗中非常慢 - 到需要幾秒鐘才能響應的地步。
Free
服務啟動後編輯 2 -輸出:total used free shared buffers cached Mem: 604376 469776 134600 0 8976 78212 -/+ buffers/cache: 382588 221788 Swap: 0 0 0
請注意,微實例是:
- 在 CPU 方面非常有限,它使用突發分配的概念。確切的描述是:最多 2 個 EC2 計算單元(用於短週期突發)。
- 記憶體(613MB)非常有限。確保 Glassfish 不會嘗試過度分配,因為您將交換到磁碟,這在 AWS EC2 中會受到嚴重懲罰。
很確定你正在擊中這兩個中的一個……