2010-03-07 9 views
13

Sto cercando di capire cosa potrebbe causare un ritardo all'avvio di Jetty. È un problema di configurazione, la mia applicazione o qualcos'altro?Ritardo avvio jetty

Ho Jetty 7 (jetty-7.0.1.v20091125 25 novembre 2009) installato su un server e distribuisco un file ROOT.war da 45MB nella directory webapps. Questa è l'unica webapp configurata in Jetty. Ho poi comincio Jetty con il comando:

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

ottengo due linee di uscita a destra dopo aver fatto questo:

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 

Quando premo il tasto invio, ho la mia schiena Prompt dei comandi. Guardando il file di registro (log/2010_03_07.stderrout.log), vedo il seguente all'inizio:

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

Avviso la lunga pausa 1 minuto tra il 3 ° e 4 ° linee. Cosa sta facendo Jetty a questo punto? Quali altre cose potrebbero andare avanti? Non sembra nemmeno che abbia iniziato l'inizializzazione di Spring ancora.

Nota che ho controllato la mia directory/tmp per vedere se era semplicemente il momento di decomprimere il mio file di guerra, ma il file era stato completamente decompresso anche all'inizio di questo ritardo di 1 minuto.

UPDATE:

grazie ai suggerimenti, ho aggiunto la registrazione di debug. Ho scoperto che circa 2 secondi sono stati usati per estrarre il file di guerra. Ma poi c'è circa un secondo di ritardo 41 sulla 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]@ 

Qual è SecureRandom, e perché dovrebbe causare questo ritardo?

SOLUZIONE:

Sembra che sono in esecuzione in un problema con il mio system not having enough load. Ho appena impostato questo come un nuovo server di staging, e nessuno lo sta usando tranne me. Quindi il sistema non ha abbastanza entropia perché il generatore di numeri casuali generi abbastanza casualità in fretta.

risposta

14

Jetty 7 (e forse inferiore):

Impostare la registrazione di debug verbose (molto) con -Dorg.eclipse.jetty.util.log.DEBUG=true (vedi Jetty/Starting/Porting to Jetty 7) e provare a vedere cosa sta succedendo in questo momento.

Come nota a margine, avrete probabilmente bisogno di supporto jsp così si dovrebbe passare -DOPTIONS=Server,deploy,jsp all'avvio (vedi Running Jetty-7.0.x).

E se non hai bisogno di cose fantastiche da Jetty 7.x, allora dovresti stare con Jetty 6 invece di Jetty 7 eclipse (più stabile, meno problemi a causa della migrazione di Eclipse, migliore documentazione, più facile da usare) .

Jetty 8:

In Jetty 8.1: Sistema di proprietà [org.eclipse.jetty.util.log.DEBUG] è stato deprecato! (Utilizzare invece org.eclipse.jetty.LEVEL = DEBUG)

+0

@Pascal, grazie per l'aiuto. Ho aggiornato la mia domanda con alcuni registri di debug. Sembra che sia bloccato su SecureRandom. Qualche idea? – Tauren

+4

@Pascal, penso di aver trovato la soluzione. La tua risposta mi ha aiutato a trovarlo, grazie! http://docs.codehaus.org/display/JETTY/Connectors+slow+to+startup – Tauren

+0

Inoltre, sono tornato alla versione 6.1.22 in base al tuo suggerimento. – Tauren

2

Provare a cambiare il livello di registrazione in DEBUG e vederlo che rivela qualcosa di interessante. Se non altro, potrebbe consentire di restringere il punto in cui nella sequenza di avvio il problema è.

+0

@Stephan. Grazie. Ho aggiunto alcuni registri di debug alla domanda se hai altre idee. – Tauren

+0

@Tauren - Vedo che l'hai già capito. –