码头启动延迟
我试图弄清楚是什么会导致Jetty的启动延迟1分钟。是配置问题、我的应用程序还是其他问题?
我在服务器上安装了 Jetty 7 (jetty-7.0.1.v20091125 2009 年 11 月 25 日),并将一个 45MB 的 ROOT.war 文件部署到 webapps 目录中。这是在 Jetty 中配置的唯一 Web 应用。然后,我使用以下命令启动 Jetty:
java -DSTOP.PORT=8079 -DSTOP.KEY=mystopkey -Denv=stage -jar start.jar etc/jetty-logging.xml etc/jetty.xml &
完成此操作后,我立即获得两行输出:
2010-03-07 14:20:06.642:INFO::Logging to StdErrLog::DEBUG=false via org.eclipse.jetty.util.log.StdErrLog
2010-03-07 14:20:06.710:INFO::Redirecting stderr/stdout to /home/zing/jetty-distribution-7.0.1.v20091125/logs/2010_03_07.stderrout.log
当我按回车键时,我得到了我的命令提示符。查看日志文件(logs/2010_03_07.stderrout.log),我在开头看到以下内容:
2010-03-07 14:08:50.396:INFO::jetty-7.0.1.v20091125
2010-03-07 14:08:50.495:INFO::Extract jar:file:/home/zing/jetty-distribution-7.0.1.v20091125/webapps/ROOT.war!/ to /tmp/Jetty_0_0_0_0_8080_ROOT.war___.8te0nm/webapp
2010-03-07 14:08:52.599:INFO::NO JSP Support for , did not find org.apache.jasper.servlet.JspServlet
2010-03-07 14:09:51.379:INFO::Set web app root system property: 'webapp.root' = [/tmp/Jetty_0_0_0_0_8080_ROOT.war___.8te0nm/webapp]
2010-03-07 14:09:51.585:INFO::Initializing Spring root WebApplicationContext
INFO - ContextLoader - Root WebApplicationContext: initialization started
INFO - XmlWebApplicationContext - Refreshing Root WebApplicationContext: startup date [Sun Mar 07 14:09:51 PST 2010]; root of context hierarchy
...
请注意第 3 行和第 4 行之间的 1 分钟长停顿。在这一点上,码头在做什么?可能还发生了什么其他事情?它甚至看起来还没有开始我的春季初始化。
请注意,我检查了我的/tmp目录,看看是否只是解开我的war文件的时间,但即使在这1分钟的延迟开始时,该文件也已经完全解压缩。
更新:
由于建议,我添加了 DEBUG 日志记录。我发现大约2秒用于提取war文件。但是,在 Init SecureRandom 上大约有 41 秒的延迟:
2010-03-07 21:54:45.414:DBUG::Starting SessionHandler@79884a40@
2010-03-07 21:54:45.414:DBUG::Starting org.eclipse.jetty.server.session.HashSessionManager@5fe8ce8
2010-03-07 21:54:45.416:DBUG::Container org.eclipse.jetty.server.Server@35175422 + org.eclipse.jetty.server.session.HashSessionIdManager@1d96f4b5 as sessionIdManager
2010-03-07 21:54:45.416:DBUG::Starting org.eclipse.jetty.server.session.HashSessionIdManager@1d96f4b5
2010-03-07 21:54:45.416:DBUG::Init SecureRandom.
2010-03-07 21:55:26.244:DBUG::STARTED org.eclipse.jetty.server.session.HashSessionIdManager@1d96f4b5
2010-03-07 21:55:26.247:DBUG::STARTED org.eclipse.jetty.server.session.HashSessionManager@5fe8ce8
2010-03-07 21:55:26.248:DBUG::Starting ConstraintSecurityHandler@6b9cd75a@
2010-03-07 21:55:26.261:DBUG::Starting ServletHandler@62c2ee15@
什么是 SecureRandom,为什么它会导致这种延迟?
溶液:
看起来我遇到了系统负载不足的问题。我刚刚将其设置为新的暂存服务器,除了我之外,没有人使用它。因此,系统没有足够的熵来让随机数生成器快速生成足够的随机性。