我在 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:
此处pastbin 中运行#2 的完整日志
值得注意的是,两次运行中第二行和第三行之间的时间差异很大。(3 秒对 1 分钟以上)
我还可以补充一点,当服务器启动时,第二个 SSH 窗口中的控制台响应非常慢 - 以至于ls
需要几秒钟才能响应。
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 中会受到严重惩罚。
很确定你正在击中这两个中的一个......