Instancias inaccesibles
Buenas tardes,
Un problema bastante extraño me aqueja en el trabajo, ahí van una no tan breve explicación de los hechos esperando su valiosa aportación.
Se tienen 4 instancias, AAA.AAA.AAA.AAA , BBB.BBB.BBB.BBB , CCC.CCC.CCC.CCC , DDD.DDD.DDD.DDD
dichas instancias tienen el Sun Application Server 9.1 y están configuradas con dos puertos diferentes (http y https). Se tiene un solo balanceador de cargas igualmente configurado con los puertos http y https. El balanceador con http apunta únicamente al puerto http de las 4 instancias y el balanceador con el puerto https apunta únicamente al puerto https de las 4 instancias. (perdón por la rebusnancia).
El día miércoles por la noche se presento el problema en el que las instancias BBB.BBB.BBB.BBB y DDD.DDD.DDD.DDD se "caían", al intentar accesar a la aplicación que esta desplegada, sencillamente el navegador se queda en "cargando"... Lo curioso fue que esto solo ocurrió al intentar accesar por el puerto de https... mediante http se entraba correctamente a la aplicación!!... Lo anterior es raro debido a que no se trata de 2 equipos diferentes o 2 servidores de aplicaciones diferentes!! es el mismo pero configurado con 2 puertos!
El problema anterior, me obligo a sacar dichas instancias en su puerto HTTPS del Balanceador de cargas debido a que los usuarios externos a la empresa, son los que accesan mediante una dirección de internet que apunta al balanceador https y a su vez este a los mismos puertos seguros de las 4 instancias. Estos puertos https son los más accesados ya que nuestros usuarios más activos son usuarios externos a la empresa... Por ello, se sacaron del balanceador las 2 instancias en sus puertos seguros para no afectar a los usuarios y que el balanceador direccionara a alguno de ellos a una de esas instancias "caídas".
Mientras las instancias están fuera del balanceador (tienen menos carga), funcionan correctamente, pero en cuanto se meten de nuevo al balanceador, no tardan 2 minutos y nuevamente se "caen", pero solo por https, por el http normal funciona bien. Se que el https es más lento, pero definitivamente pasan 10 minutos y la app nunca carga!!
Llegue a pensar que podian ser las conexiones a BD Oracle, pero las 4 instancias apuntan a un nodo de BD y utilizan el mismo usuario (todo configurado en el pool de conexiones)... Preguntando a los DBA de la BD, me comentan que dicho usuario soporta 600 conexiones como máximo y en ese momento tenia 160 conexiones establecidas, es decir, aun existian bastantes conexiones disponibles. Lo anterior suena correcto debido a que en cada una de las 4 instancia se tiene configuradas 40 conexiones iniciales y 50 máximas.
Las preguntas aquí son...
¿Por que al meter alguna de estas 2 instancias, no tardan ni 2 minutos y solo queda inaccesible la app por el puerto https?
¿Por qué por el http si es posible accesar a la app?
Si el problema fuera la saturación de peticiones, ¿como es posible que de las 2 instancias que se sacaron del balanceador, solo estan funcionando las otras 2 restantes y por ende entre ellas 2 tienen ahora más carga de trabajo, sin embargo estas 2 no se caen?
Cabe mencionar que en las 4 instancias tienen la misma memoria en la JVM asignada (512 máximo), incluso, en una de las que tiene el problema, se modifico a un máximo de 2 GB y aun así se sigue cayendo así de rápido!!
Alguna opinión se les agradecerá mucho!! :)
- Inicie sesión o regístrese para enviar comentarios
proxy
debe ser alguna bronca con el proxy (el balanceador de cargas a fin de cuentas es un proxy sofisticado).
Pero segun yo hay algo mal en tu descripcion... si entras a las aplicaciones por http o https de todas formas esa conexion es al balanceador, y del balanceador a cualquiera de los 4 equipos sera una conexion http normal, no https. Al menos asi deberia ser, no tiene caso que manejes https entre el balanceador y los 4 equipos, solamente es necesario entre el balanceador y el navegador.
Probablemente no te ayude a encontrar la causa del problema, pero si usas http siempre entre el balanceador y los equipos, la bronca deberia desaparecer, puesto que dices que usando http no hay problema, solamente con https (lo cual me hace pensar que esta mal configurado algo en el balanceador, pues no tiene caso que se conecte por https a los equipos, pudiendo usar http normal y solamente usar https hacia el exterior; para usar https con cada equipo, necesitan tener un certificado valido, o hacer que el balanceador acepte los certificados auto-firmados que traigan los servidores http de esos equipos).
También con HTTP
Gracias por tu respuesta, el fin de semana estuve fuera de la civilización y sociedad por ello no pude responder antes.
Te comento que el viernes ya por la noche, nos dimos cuenta que con http una de esas instancias también dejo de ser accesible!.. El problema parece presentarse cuando comienzan a accesar al sistema varios usuarios, pero según yo no tiene mucho sentido pensar que sea un problema de la aplicación cuando existen 2 instancias que ahora soportan más la carga de trabajo y trabajan sin problemas!
Más bien como dices, algún problema de configuración... Resulta que el mismo viernes nos enteramos que la gente que administra dichos servidores, metieron un "filtro" que decían era a nivel de S.O (AIX de IBM) para que no pudiéramos accesar a la aplicación desde las instancias directamente, sino desde el balanceador! Esto me hizo un poco de ruido y comienzo a pensar si en días pasados no hicieron o movieron algo que nos paso a afectar y que ni ellos mismos sepan que hicieron... y desde luego... no aceptan la culpa!
Referente a lo que comentas de como debería ser las conexiones, si suena lógico, Desafortunadamente como trabajo en un banco y tienda "Z" de abonos chiquitos, estos equipos están dentro del centro de monitoreo y administración, por lo que no es nada fácil mandar a hacer un cambio de ese tipo... El proyecto lleva 3 años y yo llegue en el último año, por lo que de momento desconozco si fue el equipo de desarrollo o la gente de administración de los equipos quienes implementaron esa forma de conexión!
Solucionado: Instancias inaccesibles
Bueno, pues con la novedad que ya ha quedado resuelto el problema anterior, les comento;
Dicha aplicación tiene un módulo de "publicidad" a donde se muestran imágenes dependiendo del rol. Dichas imágenes estaban en carpetas compartidas de 2 de las instancias que operaban correctamente, las otras 2 instancias que tenían el problema tomaban la imagen de estas carpetas compartidas. La semana pasada implementaron iptables en las 4 instancias para evitar conectarse a la aplicación directamente desde las instancias, y forzar a hacerlo mediante el balanceador! Lo anterior provocó que 2 instancias no pudieran "accesar " a dicha carpeta compartida y provocaba algo como un "time out" que verificamos desde el bash.
Se deshabilito este módulo de publicidad y problema solucionado!!!... Sin embargo, sigo teniendo una duda... ¿Por qué ocurría con el https?... el viernes pasado, ocurrió en el http y el https accesaba bien!, pero de ahí en fuera siempre ocurrió solo con el https!...
Gracias y saludos!!
iptables
La respuesta debe estar en la configuración del iptables de los equipos que no funcionaban bien.