2009-02-10 75 views
19

En mi trabajo, utilizamos Weblogic Server para alojar un portal empresarial. Lo cual está bien.Acelerar los tiempos de arranque del servidor de Weblogic

Sin embargo, recientemente tuve la oportunidad de utilizar Tomcat para algunos proyectos paralelos, y me impresionó la increíble diferencia de velocidad. Tomcat tarda de 3 a 5 segundos para iniciarse y de 10 a 15 segundos para implementar proyectos de tamaño mediano. Wewblogic toma 3-5 minutos para comenzar, y hasta 10 minutos para implementar. Esto mata cualquier desarrollo iterativo.

¿Tendré que resignarme a que sea lento e hinchado, o hay algo que pueda hacer para acelerarlo? Alguien tiene experiencia con esto?

+0

3-5 minutos,!? Qué triste – rbp

Respuesta

17

No podrás convertir a la rana en una princesa. Me pregunto un poco sobre los tiempos de inicio de weblogic: parecen un poco excesivos, ¿no estás corriendo en Linux por casualidad?

Si está ejecutando archivos anidados (guerras dentro de los oídos, etc.) y también tecnologías de escaneo de directorios (hibernación, primavera, etc.), puede intentar descomprimirlo todo en la estructura explotada correspondiente antes de implementar; se sabe que ayuda un poco.

Tomcat contiene un subconjunto muy pequeño de las características que tiene weblogic. Nosotros desarrollamos en embarcadero pero lo implementamos en weblogic para entornos de aceptación/producción y esto funciona bastante bien. Puedes hacer lo mismo con Tomcat.

Tomcat es un contenedor bastante estricto, mientras que weblogic es indulgente, por lo que normalmente solo tendrá problemas menores para implementar en weblogic, especialmente siempre que haga ambas cosas de manera continua.

También puede usar una herramienta como javarebel para hacer una implementación realmente ingeniosa y evitar todos esos reinicios.

+0

Interesante. Definitivamente voy a mirar a javarebel. Lamentablemente no puedo implementarlo en Tomcat o Jetty para el desarrollo ... Estamos ejecutando Weblogic Portal, que desafortunadamente depende mucho del resto del ecosistema de BEA y parece ahogarse sin él. – levand

+0

¿Está ejecutando weblogic en Linux? Hay un problema muy oscuro con la generación de números aleatorios en Linux que causa tiempos de inicio muy lentos de weblogic. Puedo desenterrar la solución si ese es el caso. – krosenvold

+1

+1 por mencionar javarebel (ahora se llama jrebel) –

6

Como dijo krosenvold, la generación de números aleatorios puede causar un arranque lento.

La recomendación de Oracle es usar uno de los siguientes indicadores -D en sistemas que no son de producción, ya que disminuye la seguridad.

Uso -Djava.security.egd = file: /// dev/urandom interruptor o file:/dev /./ urandom a la orden que inicia WebLogic.

La información anterior se ha tomado de http://download.oracle.com/docs/cd/E12839_01/doc.1111/e14772/weblogic_server_issues.htm#CIHIIBGJ

Si la bandera -D no funciona, mira el siguiente solución: http://www.itonguard.com/20090313/weblogic-starts-slow/

1

Si utiliza taller de Weblogic, a continuación, sólo tiene que publicar, No reinicie el servidor de aplicaciones mientras realiza el desarrollo iterativo.

0

Compruebe que el tiempo de inicio prolongado se debe realmente al inicio del servidor WebLogic y no al tiempo de inicio del Portal WebLogic.

2

WebLogic también puede tardar en iniciarse en Linux si se está conectando a una base de datos y no ha configurado correctamente el DNS.

Dependiendo de su configuración, es posible que pueda editar /etc/resolv.conf y comentar la línea del servidor de nombres. Esto puede reducir el tiempo de inicio de WebLogic de 20 minutos a menos de un minuto.

1

En cuanto al problema de consumo de memoria, puede intentar establecer los parámetros de memoria de la JVM utilizada por su servidor WebLogic. Inicie sesión en su Consola WL Web Admin y vaya a Entorno/Servidores/[su servidor]/Configuración/Inicio del Servidor y, en los "Argumentos", configure algo como -Xms256m -Xmx256m establecerá la inicial (Xms) y máxima de su JVM (Xmx) tamaño del almacenamiento dinámico a 256 megabytes. Querrá jugar con estos números y encontrar los mejores valores para su entorno. Pero tenga en cuenta que su instancia de Eclipse también podría estar consumiendo mucha memoria.

En cuanto al tiempo de arranque, aunque un poco más grande de lo que cabría esperar, parecen estar bien. Este problema es muy frecuente, y no creo que puedas resolverlo definitivamente. WebLogic tiene muchas más funciones que Tomcat, y esto se refleja en otras características del entorno (como el tiempo de inicio).

Resulta que Weblogic usa un generador de números aleatorios durante el arranque. Debido al error en java, dice 'aleatoriedad' de/dev/random./dev/random es muy bueno generadores de números aleatorios pero es extremadamente lento. En ocasiones, se necesitan 10 minutos o más para generar un número./dev/urandom no es tan bueno, pero es instantáneo. Java de alguna manera asigna el archivo/dev/urandom a/dev/random. Es por eso que las configuraciones predeterminadas en $ JAVA_HOME/jre/lib/security/java.security son inútiles.

Posibles soluciones: 1) Agregue "-Djava.security.egd = file:/dev /./ urandom" (/ dev/urandom no funciona) a los parámetros de java.

Peor pero la solución de trabajo es: 2) mv/dev/random /dev/random.ORIG; ln/dev/urandom/dev/random

3) La mejor solución es cambiar $ JAVA_HOME/jre/lib/security/java.security Reemplazar securerandom.source con

securerandom.source = file:/dev /./urandom

Este problema no ocurre en Windows porque usa una implementación diferente de/dev/random.

Tarda unos segundos en iniciar el servidor weblogic ahora.

0

Como Tomas F y Krosenvold sugirieron que podría ser para el generador de números aleatorios.

En la puesta en marcha estándar de Weblogic 12.2.1 Tengo este mensaje:

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

Así que especifica y se redujo el tiempo de puesta en marcha por la mitad. Aproximadamente 13 segundos en un dominio limpio.

Cuestiones relacionadas