如何将Glassfish的启动时间从2分钟缩短到可以接受的程度?

我在Amazon EC2(弹性计算云)中的Ubuntu 12.04微型实例上运行Glassfish开源版本v3.1.1。 我已经configuration了单个应用程序的单个域。 当我用time asadmin start-domain ,它回报如下:

 Waiting for domain1 to start ............................ (...) Command start-domain executed successfully. real 2m6.599s 

两分钟…什么需要两分钟? 有什么办法可以加快这个过程,或者我应该为我的应用程序服务器使用Tomcat或Jetty等其他解决scheme吗? 在本地Windows 8客户端计算机上重新启动Glassfish时,需要几秒钟,而不是几分钟。 虽然我意识到我的电脑有更多的硬件,但是启动一个简单的应用程序服务器不需要两分钟的时间。

我尝试添加以下两个JVM-OPTIONS到其他 讨论推荐的域configuration文件,无济于事: -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: 

运行#2完整日志在这里 pastbin

需要注意的是,两次运行中的第二行和第三行之间的时间差别很大。 (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 

请注意,微型实例是:

  • 在CPU方面非常有限,它使用可分配分配的概念。 确切的描述是:最多2个EC2计算单位(短周期性突发)。

  • 内存方面非常有限(613MB)。 确保Glassfish不会尝试分配,因为您将交换到磁盘,这在AWS EC2中受到严重的惩罚。

很确定你正在击中其中的一个…