2009-02-10 18 views
19

Bei meiner Arbeit verwenden wir Weblogic Server als Host für ein Unternehmensportal. Was ist in Ordnung.Beschleunigung des Starts des Weblogic Servers

Jedoch hatte ich kürzlich die Gelegenheit, Tomcat für einige Nebenprojekte zu verwenden, und ich bin vom unglaublichen Unterschied in der Geschwindigkeit betroffen. Tomcat benötigt 3-5 Sekunden zum Starten und 10-15 Sekunden zum Bereitstellen eines mittelgroßen Projekts. Wewblogic dauert 3-5 Minuten zu starten, und bis zu 10 Minuten zu implementieren. Dies tötet jede iterative Entwicklung.

Muss ich mich damit abfinden, dass es langsam und aufgebläht ist, oder kann ich irgendetwas tun, um es zu beschleunigen? Hat jemand Erfahrung damit?

+0

3-5 Minuten,!? Wie traurig – rbp

Antwort

17

Sie können den Frosch nicht in eine Prinzessin verwandeln. Ich würde mich etwas über diese Startzeiten für Weblogic wundern - sie scheinen ein bisschen übertrieben, du liegst nicht zufällig auf Linux?

Wenn Sie verschachtelte Archive (Kriege in Ohren usw.) und auch Verzeichnis-Scan-Technologien (Ruhezustand, Feder usw.) ausführen, können Sie versuchen, alles vor der Bereitstellung in die entsprechende explodierte Struktur auszupacken; Es ist bekannt, dass es ein wenig hilft.

Tomcat enthält eine sehr kleine Teilmenge der Funktionen, die Weblogic hat. Wir entwickeln auf Anlegesteg, aber auf Weblogic für Akzeptanz/Produktion Umgebungen bereitstellen und das funktioniert ziemlich gut. Sie können das gleiche mit Tomcat tun.

Tomcat ist ein ziemlich strenger Container, während Weblogic nachsichtig ist, so dass Sie normalerweise nur geringfügige Probleme bei der Bereitstellung von Weblogic haben werden, insbesondere solange Sie beides kontinuierlich tun.

Sie können auch ein Tool wie javarebel verwenden, um wirklich raffinierte Hot-Deployment zu machen und all diese Neustarts zu vermeiden.

+0

Interessant. Ich werde definitiv nach javarebel schauen. Leider kann ich nicht auf Tomcat oder Jetty zur Entwicklung bereitstellen ... Wir betreiben Weblogic Portal, das leider sehr auf den Rest des BEA-Ökosystems angewiesen ist und ohne es zu ersticken scheint. – levand

+0

Laufen Sie Weblogic auf Linux? Es gibt ein sehr unklares Problem mit der Generierung von Zufallszahlen unter Linux, das sehr langsame Startzeiten von Weblogic verursacht. Ich kann die Lösung ausgraben, wenn das der Fall ist. – krosenvold

+1

+1 für die Erwähnung von Javarebel (jetzt JRebel genannt) –

6

Wie Krosenvold sagte, kann die Zufallszahlenerzeugung einen langsamen Start verursachen.

Die Empfehlung von Oracle besteht darin, eine der folgenden -D-Flags zu verwenden - nur auf Nicht-Produktionssystemen, da dies die Sicherheit verringert.

Verwenden -Djava.security.egd = file: /// dev/urandom Schalter oder file:/dev /./ urandom auf den Befehl, der weblogic beginnt.

oben Die Informationen aus http://download.oracle.com/docs/cd/E12839_01/doc.1111/e14772/weblogic_server_issues.htm#CIHIIBGJ

genommen wird, wenn die D-Flag nicht funktioniert, an die folgende Lösung aussehen: http://www.itonguard.com/20090313/weblogic-starts-slow/

1

Wenn Sie Werkstatt Weblogic verwenden, dann müssen Sie nur veröffentlichen, Starten Sie den Anwendungsserver nicht während der iterativen Entwicklung neu.

0

Überprüfen Sie, ob die lange Startzeit tatsächlich auf den Start des WebLogic Servers und nicht auf die Startzeit des WebLogic-Portals zurückzuführen ist.

2

WebLogic kann auch langsam unter Linux starten, wenn es eine Verbindung zu einer Datenbank herstellt und Sie DNS nicht ordnungsgemäß eingerichtet haben.

Abhängig von Ihrer Konfiguration können Sie möglicherweise /etc/resolv.conf bearbeiten und die Nameserver-Zeile auskommentieren. Dies kann die Startzeit von WebLogic von 20 Minuten auf weniger als eine Minute reduzieren.

1

Bei dem Speicherverbrauchsproblem sollten Sie versuchen, die Speicherparameter der JVM festzulegen, die von Ihrem WebLogic-Server verwendet werden. Melden Sie sich bei Ihrer WL Web Admin Console an und gehen Sie zu Environment/Server/[Ihr Server]/Konfiguration/Server Start und legen Sie unter "Argumente" eine Einstellung wie -Xms256m -Xmx256m fest, die Ihre JVM-Initiale (Xms) und Maximum (Xmx) Heap-Größe auf 256 Megabyte. Sie werden mit diesen Zahlen spielen und die besten Werte für Ihre Umgebung finden. Bitte beachten Sie jedoch, dass Ihre Eclipse-Instanz möglicherweise auch viel Speicher verbraucht.

In Bezug auf die Startzeit, obwohl ein bisschen größer als ich erwarten würde, scheinen sie in Ordnung. Dieses Problem ist sehr häufig, und ich denke nicht, dass Sie es definitiv lösen können. WebLogic hat viel mehr Funktionen als Tomcat, und dies spiegelt sich in anderen Eigenschaften der Umgebung (wie Start-Zeit).

Stellt sich heraus, Weblogic verwendet Zufallsgenerator beim Start. Wegen des Fehlers in Java liest es 'Zufälligkeit' von/dev/random./dev/random ist sehr gut Zufallszahlengeneratoren, aber es ist extrem langsam. Es dauert manchmal 10 Minuten oder mehr, um eine Nummer zu generieren./dev/urandom ist nicht so gut, aber es ist sofort. Java irgendwie maps/dev/urandom Datei zu/dev/random. Aus diesem Grund sind die Standardeinstellungen in $ JAVA_HOME/jre/lib/security/java.security nutzlos.

Mögliche Lösungen: 1) Fügen Sie "-Djava.security.egd = file:/dev /./ urandom" (/ dev/urandom funktioniert nicht) zu den Java-Parametern hinzu.

Schlimmer, aber funktionierende Lösung ist: 2) mv/dev/random /dev/random.ORIG; ln/dev/urandom/dev/random

3) Beste Lösung ist $ JAVA_HOME/jre/lib/security/java.security ersetzen securerandom.source mit

securerandom.source = Datei zu ändern:/dev /./urandom

Dieses Problem tritt unter Windows nicht auf, da es eine andere Implementierung von/dev/random verwendet.

Es dauert Sekunden, um den Weblogic-Server jetzt zu starten.

0

Wie Tomas F und krosenvold vorgeschlagen haben, könnte es für den Zufallszahlengenerator sein.

Auf der Standard-Inbetriebnahme von Weblogic 12.2.1 bekam ich diese Meldung:

Disabling the CryptoJ JCE Provider self-integrity check for better startup performance. 
To enable this check, specify -Dweblogic.security.allowCryptoJDefaultJCEVerification=true 

ich es so spezifiziert und es schneiden die Startzeit in der Hälfte. Ungefähr 13 Sekunden auf einer sauberen Domain.

Verwandte Themen