Гагатовая задержка запуска

Я пытаюсь выяснить то, что вызвало бы задержку 1 минуты запуска Причала. Действительно ли это - проблема конфигурации, мое приложение или что-то еще?

У меня есть Причал 7 (причал-7.0.1.v20091125 25 ноября 2009) установленный на сервере, и я развертываю 45 МБ файл ROOT.war в каталог веб-приложений. Это - единственное веб-приложение, настроенное в Причале. Я затем запускаю Причал с команды:

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

Когда я нажимаю клавишу Enter, я возвращаю свою командную строку. Смотря на файл журнала (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
...

Заметьте паузу 1 минута длиной между 3-ми и 4-ми строками. Что Причал делает в этой точке? На что могли идти другие вещи? Не даже похоже, что это запустило мою инициализацию Spring все же.

Обратите внимание, что я проверил свой/tmp каталог, чтобы видеть, было ли это просто время для распаковки моего военного файла, но файл был полностью распакован даже в начале задержки этой 1 минуты.

ОБНОВЛЕНИЕ:

Благодаря предложениям я добавил вход DEBUG. Я нашел, что приблизительно 2 секунды использовались для извлечения военного файла. Но затем существует о 41-секундной задержке на Init SecureRandom:

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, и почему он вызвал бы эту задержку?

РЕШЕНИЕ:

Похоже, что я сталкиваюсь с проблемой со своей системой, не имеющей достаточно загрузки. Я только что настроил это как новый сервер подготовки, и нет никого использующего его кроме меня. Таким образом, система не имеет достаточной энтропии для генератора случайных чисел для генерации достаточной случайности быстро.

13
задан Tauren 8 March 2010 в 06:49
поделиться

2 ответа

Jetty 7 (и возможно ниже):

Установите (very) verbose debug logging с -Dorg. eclipse.jetty.util.log.DEBUG=true (см. Jetty/Starting/Porting to Jetty 7) и попробуйте посмотреть, что происходит в течение этой минуты.

В качестве примечания, вам, вероятно, понадобится поддержка jsp, поэтому при запуске вам следует передать -DOPTIONS=Server,deploy,jsp (см. Запуск Jetty-7.0.x).

И если вам не нужны причудливые вещи из Jetty 7.x, тогда вам следует придерживаться Jetty 6 вместо Jetty 7 eclipse (более стабильный, меньше проблем из-за перехода на Eclipse, лучшая документация, проще в использовании).

Jetty 8:

В Jetty 8.1: Свойство системы [org.eclipse.jetty.util.log.DEBUG] было устаревшим! (Вместо этого используйте org.eclipse.jetty.LEVEL=DEBUG)

14
ответ дан 2 December 2019 в 00:03
поделиться

Попробуйте изменить уровень ведения журнала на DEBUG и посмотрите, что обнаружит что-нибудь интересное. По крайней мере, это может позволить вам сузить круг проблем в последовательности запуска.

2
ответ дан 2 December 2019 в 00:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: