Weblogic powoli się uruchamia (11mins) pod VM (VirtualBox i VMware)

(rozwiązany! PRZEZ UDAWANIE GENERATORA LOSOWEGO SYSTEMU, PATRZ PONIŻEJ)

Konfiguruję obraz maszyny wirtualnej dla mojego zespołu dev/build. Wewnątrz tej maszyny wirtualnej powinna być uruchomiona domena Weblogic. Używam Ububtu server distro, WLS 9. 2MP3 + ALSB.

Wszystko działa OK, dość szybko, ale na początku WLS zatrzymuje się dwa razy na mierzalną ilość czasu. Dwa przystanki w sumie wynoszą około 10 minut opóźnienia. W przypadku zadań, w których wdrożenie wymaga ponownego uruchomienia serwera, jest to bardzo denerwujące. :-(

Czas uśpienia nie jest stały, czasami serwer uruchamia się bardzo szybko, czasami tak-tak, czasami 10 minut lub więcej.

Ciekawe, że jeśli nacisnę Enter patrząc na zatrzymany serwer, budzi się znacznie szybciej, czasami po kilku sekundach. WLST (WebLogic Jython shell) jest również zawieszony przez dłuższy czas, gdy jest wykonywany w maszynie wirtualnej. Nie reaguje jednak na wejście.

Tutaj muszą być niektórzy programiści, którzy uruchamiają WLS z maszyną wirtualną. Zastanawiam się, czy inni mają ten sam problem? Czy ktoś był w stanie to rozwiązać?

Oto wyjście serwera (tylko dla sprawy):

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.>
Tutaj mamy pierwsze opóźnienie, do 5 minut...
<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.>

I tu jest drugi, znowu do 5 minut.

<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

Myślę, że mam ścieżkę: to musi być inicjalizacja nasion randona. To może wyjaśniać, dlaczego generowanie zdarzeń klawiatury zwalnia serwer. Zrobiłem zrzut wątku i jeden wątek jest w stanie runnable, ale czekam: [7]}

"[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)
Author: Kara, 2010-04-01

4 answers

Rozwiązane

Weblogic używa SecureRandom do init security subsystem. SecureRandom domyślnie używa /dev / urandom device. Z jakiegoś powodu czytanie tego urządzenia pod maszyną wirtualną dość często się zatrzymuje. Generowanie zdarzeń konsoli pomaga stworzyć więcej losowości i zwolnić WLS.

W celach testowych zmieniłem jre/lib/security / java.plik bezpieczeństwa:

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

Weblogic zaczyna się za 15 sekund.

Ponieważ nie testujemy żadnych zabezpieczeń w naszych maszynach wirtualnych, powtarzanie nasion jest dla nas całkowicie w porządku.

 20
Author: Vladimir Dyuzhev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-02 01:07:47

W przypadku, gdy masz standardowe serwery aplikacji enterprise bez uprawnień do zmiany plików binarnych, możesz dodać flagę JVM, aby zastąpić generator losowy. Np.:

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

W ten sposób nie musisz zmieniać żadnych ustawień systemowych.

 8
Author: twh1st,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-14 06:57:32

Oracle od tego czasu stworzyło notatkę Metalink związaną z tym Kreator konfiguracji FMW jest bardzo wolny w wirtualnych środowiskach Linuksa. Uruchamianie serwerów WLS jest również bardzo powolne. [ID 1344974.1]

...

Rozwiązanie 1 1) Pobierz i zainstaluj następujące rpm: RNG-utils-2.0-1.14.1.fc6.x86_64rpm . Skontaktuj się ze swoim dostawcą, aby uzyskać szczegóły do pobrania. 2) uruchom generator losowy w następujący sposób: rngd -r /dev/urandom-o /dev/random-T 1

Domyślnie istnieje zależność od /dev / random na Linuksie, który blokuje, dopóki nie zostanie wygenerowana odpowiednia losowość. Serwery wirtualne bez dołączonej myszy i klawiatury mogą znacznie się blokować. W powyższej komendzie wejście jest pobierane z unblocking /dev / urandom, więc oczekiwanie na losowość nie staje się wąskim gardłem aplikacji.

 6
Author: Ruan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-23 03:31:42

Spróbuj zainstalować rngd. W nowoczesnych systemach ze sprzętowym RNG stworzy to wystarczającą entropię.

 0
Author: Chris Jefferson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-11 16:25:20