2010-04-01 23 views
16

(Risolto! Fingendo SISTEMA Generatore casuale, vedi sotto)Weblogic è lento a partire (11mins) con una VM (VirtualBox e VMware)

Sono la creazione di un'immagine VM per il mio dev/costruire squadra . All'interno di quella VM dovrebbe essere in esecuzione un dominio Weblogic. Utilizzo la distribuzione del server Ububtu, WLS 9.2MP3 + ALSB.

Tutto funziona OK, abbastanza veloce, ma al momento dell'inizio il WLS si ferma due volte per un tempo misurabile. Due arresti per un totale di circa 10 minuti di ritardo. Per le attività in cui la distribuzione richiede il riavvio del server è molto fastidioso. :-(

tempo di sonno non è costante, a volte il server si avvia molto velocemente, a volte così così, a volte 10 minuti o più.

Interessante il fatto che se si preme Invio mentre guardando il server arrestato, si sveglia molto più veloce, a volte dopo qualche secondo. WLST (Weblogic Jython shell) si blocca anche per un certo tempo quando eseguito in VM. Non risponde a Enter.

Ecco alcuni sviluppatori che eseguono WLS con una VM. Mi chiedo se altri hanno lo stesso problema? Qualcuno è stato in grado di risolverlo?

Ecco l'output del server (solo per un caso):

Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_12-b04) 
Java HotSpot(TM) Client VM (build 1.5.0_12-b04, mixed mode) 
Starting WLS with line: 
/shared2/beahome/jdk150_12/bin/java -client -Xmx256m -XX:MaxPermSize=128m -Xverify:none -da -Dplatform.home=/shared2/beahome/weblogic92 
-Dwls.home=/shared2/beahome/weblogic92/server -Dwli.home=/shared2/beahome/weblogic92/integration -Dweblogic.management.discover=true -Dwl 
w.iterativeDev= -Dwlw.testConsole= -Dwlw.logErrorsToConsole= -Dweblogic.ext.dirs=/shared2/beahome/patch_weblogic923/profiles/default/sysext_ 
manifest_classpath -Dweblogic.management.username=admin -Dweblogic.management.password=wlsadmin -Dweblogic.Name=LOGMGR-admin -Djava.security 
.policy=/shared2/beahome/weblogic92/server/lib/weblogic.policy weblogic.Server 
<1-Apr-2010 12:47:22 o'clock PM GMT-05:00> <Notice> <WebLogicServer> <BEA-000395> <Following extensions directory contents added to the end 
of the classpath: 
/shared2/beahome/weblogic92/platform/lib/p13n/p13n-schemas.jar:/shared2/beahome/weblogic92/platform/lib/p13n/p13n_common.jar:/shared2/beahom 
e/weblogic92/platform/lib/p13n/p13n_system.jar:/shared2/beahome/weblogic92/platform/lib/wlp/netuix_common.jar:/shared2/beahome/weblogic92/pl 
atform/lib/wlp/netuix_schemas.jar:/shared2/beahome/weblogic92/platform/lib/wlp/netuix_system.jar:/shared2/beahome/weblogic92/platform/lib/wl 
p/wsrp-common.jar> 
<1-Apr-2010 12:47:22 o'clock PM GMT-05:00> <Info> <WebLogicServer> <BEA-000377> <Starting WebLogic Server with Java HotSpot(TM) Client VM Ve 
rsion 1.5.0_12-b04 from Sun Microsystems Inc.> 
<1-Apr-2010 12:47:23 o'clock PM GMT-05:00> <Info> <Management> <BEA-141107> <Version: WebLogic Server 9.2 MP3 Mon Mar 10 08:28:41 EDT 2008 
1096261 > 
<1-Apr-2010 12:47:25 o'clock PM GMT-05:00> <Info> <WebLogicServer> <BEA-000215> <Loaded License : /shared2/beahome/license.bea> 
<1-Apr-2010 12:47:25 o'clock PM GMT-05:00> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING> 
<1-Apr-2010 12:47:25 o'clock PM GMT-05:00> <Info> <WorkManager> <BEA-002900> <Initializing self-tuning thread pool> 
<1-Apr-2010 12:47:25 o'clock PM GMT-05:00> <Notice> <Log Management> <BEA-170019> <The server log file /shared2/wldomains/beaadmd/LOGMGR/ser 
vers/LOGMGR-admin/logs/LOGMGR-admin.log is opened. All server side log events will be written to this file.> 

Qui abbiamo il primo ritardo, fino a 5 minuti ...

<1-Apr-2010 12:53:21 o'clock PM GMT-05:00> <Notice> <Security> <BEA-090082> <Security initializing using security realm myrealm.> 
<1-Apr-2010 12:53:24 o'clock PM GMT-05:00> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STANDBY> 
<1-Apr-2010 12:53:24 o'clock PM GMT-05:00> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING> 
<1-Apr-2010 12:53:25 o'clock PM GMT-05:00> <Notice> <Log Management> <BEA-170027> <The server initialized the domain log broadcaster success 
fully. Log messages will now be broadcasted to the domain log.> 
<1-Apr-2010 12:53:25 o'clock PM GMT-05:00> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to ADMIN> 
<1-Apr-2010 12:53:25 o'clock PM GMT-05:00> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RESUMING> 
<1-Apr-2010 12:53:28 o'clock PM GMT-05:00> <Notice> <Security> <BEA-090171> <Loading the identity certificate and private key stored under t 
he alias adminuialias from the jks keystore file /shared2/wldomains/beaadmd/LOGMGR/CustomIdentity.jks.> 

E qui è il secondo, ancora una volta fino a 5 minuti.

<1-Apr-2010 12:58:56 o'clock PM GMT-05:00> <Notice> <Security> <BEA-090169> <Loading trusted certificates from the jks keystore file /shared 
2/wldomains/beaadmd/LOGMGR/CustomTrust.jks.> 
<1-Apr-2010 12:58:57 o'clock PM GMT-05:00> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure" is now listening on 192.168.56.102:7002 f 
or protocols iiops, t3s, ldaps, https.> 
<1-Apr-2010 12:58:57 o'clock PM GMT-05:00> <Notice> <Server> <BEA-002613> <Channel "Default" is now listening on 192.168.56.102:8012 for pro 
tocols iiop, t3, ldap, http.> 
<1-Apr-2010 12:58:57 o'clock PM GMT-05:00> <Notice> <WebLogicServer> <BEA-000331> <Started WebLogic Admin Server "LOGMGR-admin" for domain " 
LOGMGR" running in Development Mode> 
<1-Apr-2010 12:58:57 o'clock PM GMT-05:00> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING> 
<1-Apr-2010 12:58:57 o'clock PM GMT-05:00> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode> 

UPDATE

penso che ho la pista: deve essere l'inizializzazione seme randon. Questo potrebbe spiegare perché generare eventi di tastiera rilasciare il server. Ho fatto la discarica filo, e un thread è in stato eseguibile, ma in attesa:

"[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=1 tid=0x0a7b06e8 nid=0xeda runnable [0x728a500 
0..0x728a6d80] 
     at java.io.FileInputStream.readBytes(Native Method) 
     at java.io.FileInputStream.read(FileInputStream.java:194) 
     at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:185) 
     at sun.security.provider.NativePRNG$RandomIO.implGenerateSeed(NativePRNG.java:202) 
     - locked <0x7d928c78> (a java.lang.Object) 
     at sun.security.provider.NativePRNG$RandomIO.access$300(NativePRNG.java:108) 
     at sun.security.provider.NativePRNG.engineGenerateSeed(NativePRNG.java:102) 
     at java.security.SecureRandom.generateSeed(SecureRandom.java:475) 
     at weblogic.security.AbstractRandomData.ensureInittedAndSeeded(AbstractRandomData.java:83) 
+1

Grazie per la pubblicazione degli aggiornamenti, ma è necessario pubblicare la soluzione come risposta e accettarla. –

+0

Grazie, lo farò. Ho sentito che è un po 'mentalmente malsano rispondere a me stesso :-) –

+1

In realtà, è incoraggiato, soprattutto se hai trovato la soluzione (puoi anche usare SO come blog tecnico personale, usando uno stile di pericolo). –

risposta

16

risolto

Weblogic usa SecureRandom a init sottosistema di sicurezza. SecureRandom di default utilizza il dispositivo/dev/urandom. Per qualche ragione, la lettura di questo dispositivo sotto VM si interrompe spesso. Generare eventi di console aiuta a creare più casualità e rilascia il WLS.

Ai fini della prova ho cambiato jre lib file// security/java.security:

securerandom.source=file:/tmp/big.random.file 

Weblogic ora si avvia in 15 secondi.

Dal momento che non testiamo alcun materiale di sicurezza nelle nostre macchine virtuali, il seme ripetuto è completamente a posto per noi.

6

Oracle ha quindi creato una nota Metalink relativa a questa La procedura guidata di configurazione FMW è molto lenta sugli ambienti virtuali Linux. Anche l'avvio dei server WLS è molto lento. [ID 1344974.1]

...

Soluzione 1 1) Scaricare e installare il seguente rpm: rng-utils-2.0-1.14.1.fc6.x86_64.rpm. Contattare il fornitore per i dettagli del download. 2) di avvio del generatore casuale come segue: rngd -r/dev/urandom -o/dev/-t casuale 1

Di default sembra che ci sia una dipendenza da/dev/random su Linux che blocca fino a quando abbastanza la casualità è generata. I server virtuali senza mouse e tastiera collegati possono bloccare in modo significativo. Nel comando precedente, l'input viene preso dallo sblocco/dev/urandom in modo che l'attesa di casualità non diventi un collo di bottiglia dell'applicazione.

+1

ATTENZIONE: l'esecuzione di rngd -r/dev/urandom porterà a qualsiasi tasto (pgp, ssl, ecc.) Che generi essere insicuro, quindi usa con cautela! –

8

Se si dispone di server di applicazioni standard aziendali senza privilegi per modificare i file binari, è possibile aggiungere un flag JVM per sovrascrivere il generatore casuale che deve essere utilizzato. Es .:

-Djava.security.egd=file:/dev/./urandom 

In questo modo non è necessario modificare le impostazioni di sistema.

+0

Nota che ciò potrebbe causare problemi di sicurezza, stai utilizzando un RNG non sicuro. –

0

Provare a installare rngd. Sui sistemi moderni con un RNG hardware, questo creerà abbastanza entropia.

Problemi correlati