2010-03-07 11 views
13

Estoy tratando de averiguar lo que estaría causando un retraso de 1 minuto en el arranque de Jetty. ¿Es un problema de configuración, mi aplicación o algo más?retraso de puesta en marcha del muelle

Tengo Jetty 7 (jetty-7.0.1.v20091125 25 de noviembre de 2009) instalado en un servidor y despliego un archivo ROOT.war de 45MB en el directorio webapps. Esta es la única aplicación web configurada en Jetty. entonces comienzo embarcadero con el comando:

java -DSTOP.PORT=8079 -DSTOP.KEY=mystopkey -Denv=stage -jar start.jar etc/jetty-logging.xml etc/jetty.xml & 

puedo obtener dos líneas de salida de la derecha después de hacer esto:

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 

Al pulsar la tecla enter, consigo mi mando de órdenes de vuelta. Mirando el archivo de registro (logs/2010_03_07.stderrout.log), veo el siguiente al principio:

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 
... 

Aviso la larga pausa de 1 minuto entre la 3ª y 4ª líneas. ¿Qué está haciendo Jetty en este momento? ¿Qué otras cosas podrían estar pasando? Ni siquiera parece que haya comenzado mi inicialización de Spring todavía.

Tenga en cuenta que revisé mi directorio/tmp para ver si era simplemente el momento de descomprimir mi archivo war, pero el archivo había sido completamente desempaquetado incluso al comienzo de este retraso de 1 minuto.

ACTUALIZACIÓN:

Gracias a las sugerencias, he añadido el registro de depuración. Descubrí que se utilizaron aproximadamente 2 segundos para extraer el archivo de guerra. Pero entonces no se trata de un segundo retardo 41 en Init SecureRandom:

2010-03-07 21:54:45.414:DBUG::Starting [email protected]@ 
2010-03-07 21:54:45.414:DBUG::Starting [email protected] 
2010-03-07 21:54:45.416:DBUG::Container [email protected] + [email protected] as sessionIdManager 
2010-03-07 21:54:45.416:DBUG::Starting [email protected] 
2010-03-07 21:54:45.416:DBUG::Init SecureRandom. 
2010-03-07 21:55:26.244:DBUG::STARTED [email protected] 
2010-03-07 21:55:26.247:DBUG::STARTED [email protected] 
2010-03-07 21:55:26.248:DBUG::Starting [email protected]@ 
2010-03-07 21:55:26.261:DBUG::Starting [email protected]@ 

¿Cuál es SecureRandom, y ¿por qué sería ser la causa de este retraso?

SOLUCIÓN:

Parece que estoy corriendo en un problema con mi system not having enough load. Acabo de configurar esto como un nuevo servidor de transición, y no hay nadie que lo use excepto yo. Entonces, el sistema no tiene suficiente entropía para que el generador de números aleatorios genere suficiente aleatoriedad rápidamente.

Respuesta

14

embarcadero 7 (y tal vez más baja):

Ajuste el (muy) el registro detallado de depuración con -Dorg.eclipse.jetty.util.log.DEBUG=true (ver Jetty/Starting/Porting to Jetty 7) y tratar de ver lo que está sucediendo en este momento.

Como nota al margen, es probable que necesite soporte jsp por lo que debe pasar -DOPTIONS=Server,deploy,jsp al iniciar (consulte Running Jetty-7.0.x).

Y si no necesita cosas elegantes de Jetty 7.x, entonces debe seguir con Jetty 6 en lugar de Jetty 7 eclipse (más estable, menos problemas debido a la migración de Eclipse, mejor documentación, más fácil de usar) .

embarcadero 8:

En embarcadero 8.1: Sistema de Propiedad [org.eclipse.jetty.util.log.DEBUG] ya no se utiliza! (Use org.eclipse.jetty.LEVEL = DEBUG en su lugar)

+0

@Pascal, gracias por la ayuda. He actualizado mi pregunta con algunos registros de depuración. Parece que está siendo retenido en SecureRandom. ¿Algunas ideas? – Tauren

+4

@Pascal, creo que encontré la solución. Tu respuesta me ayudó a encontrarlo, ¡gracias! http://docs.codehaus.org/display/JETTY/Connectors+slow+to+startup – Tauren

+0

Además, he cambiado a 6.1.22 en función de su sugerencia. – Tauren

2

Intente cambiar el nivel de registro a DEBUG y vea que revela algo interesante. Si nada más, podría permitirte delimitar dónde está el problema en la secuencia de inicio.

+0

@Stephan. Gracias. He agregado algunos registros de depuración a la pregunta si tienes más ideas. – Tauren

+0

@Tauren - Veo que ya lo has descubierto. –

Cuestiones relacionadas