Tengo una configuración con 3 máquinas virtuales (1 servidor de aplicaciones en CentOS6 y 2 servidores de bases de datos en CentOS7). Las últimas 1 o 2 semanas hemos tenido problemas con tiempos de espera al conectarnos a los servidores de bases de datos (y entre los dos servidores que están en un clúster).
El proveedor de la base de datos (Couchbase) puede ver en los registros que las conexiones se cierran a la fuerza:
WARN com.couchbase.endpoint - [com.couchbase.endpoint][UnexpectedEndpointDisconnectedEvent] The remote side disconnected the endpoint unexpectedly
Los registros también muestran que se descartan paquetes, como:
[warn] Interface ‘ens32’ (removedip) failures: RX:2863 / TX:0 - Details:
- RX packets:308,593,167 errors:0
dropped:2,863 overruns:0 frame:0
Las máquinas virtuales están alojadas en el mismo host que es VMware ESXi (versión 6.5). Entonces ellosdeberíapoder tener buenas conexiones entre sí.
¿Y qué ha cambiado en las últimas semanas? Actualizaciones de seguridad en los sistemas operativos de VM y la versión del servidor de base de datos (de 6.6.0 a 7.0.0). La actualización de la base de datosno deberíacambiar algo en la red, pero obviamente es la razón por la que me comuniqué por primera vez con el proveedor de la base de datos...
Cualquier idea para encontrar al culpable es muy apreciada :-)
Editar:
Siguiendo la sugerencia de Cameron, simplemente ejecuté un breve seguimiento de la red y lo cargué en Wireshark en mi máquina local. Luego abrí la "Información del experto" y obtuve esto: Debo decir que hay un servidor proxy Nginx frente al servidor de aplicaciones. Maneja SSL y lo "levanta" antes de acceder a la aplicación. servidor. Con solo mirar la información, esperaría que los dos bloques "rojos" estuvieran relacionados con solicitudes provenientes del exterior, y no de la aplicación. servidor a los servidores de bases de datos.
¿Pero no estoy realmente seguro de qué buscar en los resultados? - y supongo que necesito dejarlo funcionar un poco más - ¿pero tal vez sin la información del exterior?
Editar 2
Mientras estaba sentado y mirándolo, el problema realmente surgió... - así que rápidamente inicié tcpdump nuevamente. Por lo tanto, es posible que los resultados no contengan la causa raíz, pero deberían ser más relevantes que los primeros: Los bloques que he ampliado parecen estar relacionados con la comunicación con uno de los servidores de bases de datos.... :-)
Pero, ¿qué significan estos resultados y cómo me acerco a encontrar la causa?
Respuesta1
Bienvenido a Fallo del Servidor.
Dada la edad; Como CentOS 6 ya no es compatible, es muy probable que sufra incompatibilidades SSL/TLS; suponiendo, por supuesto, que se esté conectando a través de eso. Ciertamente hemos experimentado muchos eventos de este tipo durante nuestro tiempo con RHEL6, ya que SSL2, etc., se deshabilitaron progresivamente de forma predeterminada. Lo mismo ocurre con varias versiones puntuales de Java (algunas versiones puntuales de la serie 1.7 fueron particularmente conflictivas)
Otra posible razón, dado que está ejecutando una carga de trabajo de CentOS en ESXi, es que podría estar quedando sin entropía, lo que provoca un comportamiento de bloqueo que puede provocar tiempos de espera y problemas de clúster, lo que provoca abortos de conexión. Hasta algún punto dentro de Java 8, Java era particularmente susceptible a esto. Puede juzgar si esto es un problema para usted mirando /proc/sys/kernel/random/entropy_avail a lo largo del tiempo; si llega a menos de 128 aproximadamente y no se recupera, entonces tienes hambre de entropía. Común en una máquina virtual donde no hay actividad del teclado y el mouse; podrías intentar ejecutar un demonio de recolección de entropía si este es el caso.
Por cierto, no concluiría a partir de esos registros que algo [más] esté forzando activamente el cierre de esas conexiones; es solo que la conexión se cerró en un momento en el que una de las partes no esperaba que lo hiciera. Esto podría deberse a cosas como tiempo de espera, excepciones, fallas del proceso, etc.
Dice que el servidor de la base de datos se actualizó... ¿fue una actualización del sistema operativo de CentOS 6? ¿La aplicación también se actualizó o se eliminó y cambió?
Saludos, Cameron