Glassfish

如何將 Glassfish 啟動時間從 2 分鐘減少到可以接受的時間?

  • March 15, 2013

我在 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=trueDcom.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 中會受到嚴重懲罰。

很確定你正在擊中這兩個中的一個……

引用自:https://serverfault.com/questions/488113