我在 Amazon EC2 (Elastic Compute Cloud) 中的 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 秒 vs 1 分钟以上)
我还可以补充一点,在服务器启动时,第二个 SSH 窗口中的控制台响应非常慢 - 需要ls
几秒钟才能响应。
编辑2 Free
-服务启动后的输出:
total used free shared buffers cached
Mem: 604376 469776 134600 0 8976 78212
-/+ buffers/cache: 382588 221788
Swap: 0 0 0
答案1
请注意,微实例是:
CPU 方面非常有限,并且使用突发分配的概念。确切的描述是:最多 2 个 EC2 计算单元(用于短周期突发)。
内存非常有限(613MB)。确保 Glassfish 不会尝试过度分配,因为您将交换到磁盘,而这在 AWS EC2 中会受到严重惩罚。
很确定你击中了其中的一个……