Redis Sentinel false failovers

Tengo problemas con Redis.

Tengo 3 serveres. Cada server tiene 10 Redises trabajando en diferentes puertos. Además, cada server tiene una instancia de Sentinel.

Además, hay 5 serveres de aplicaciones. Cada server tiene HaProxy que comtesting de la piscina que Redis server es el maestro y networkingirigir el tráfico a él.

Por lo tanto, la aplicación siempre utiliza 127.0.0.1:port no importa qué server es el maestro Redis.

Estoy teniendo problemas con falsos positivos. Este es mi logging:

[37338] 29 Apr 07:51:36.813 # Connection with slave ip1:6388 lost. [37338] 29 Apr 07:51:37.399 # Connection with slave ip3:6388 lost. [7244] 29 Apr 07:51:38.809 * DB saved on disk [7244] 29 Apr 07:51:38.814 * RDB: 35 MB of memory used by copy-on-write [37338] 29 Apr 07:51:38.918 * Background saving terminated with success [37338] 29 Apr 07:51:47.451 * SLAVE OF 192.168.234.ip1:6388 enabled (user request) [37338] 29 Apr 07:51:47.457 # CONFIG REWRITE executed with success. [37338] 29 Apr 07:51:47.541 * Connecting to MASTER ip1:6388 [37338] 29 Apr 07:51:47.541 * MASTER <-> SLAVE sync started [37338] 29 Apr 07:51:47.541 * Non blocking connect for SYNC finetworking the event. [37338] 29 Apr 07:51:47.541 * Master replied to PING, replication can continue... [37338] 29 Apr 07:51:47.541 * Partial resynchronization not possible (no cached master) [37338] 29 Apr 07:51:47.542 * Full resync from master: 0be90102031e58ef358f0ea48e58eeae869902d1:157705847 [37338] 29 Apr 07:51:51.730 * MASTER <-> SLAVE sync: receiving 85082188 bytes from master [37338] 29 Apr 07:51:52.588 * MASTER <-> SLAVE sync: Flushing old data [37338] 29 Apr 07:51:53.011 * MASTER <-> SLAVE sync: Loading DB in memory [37338] 29 Apr 07:51:54.401 * MASTER <-> SLAVE sync: Finished with success [37338] 29 Apr 07:52:39.072 * 10000 changes in 60 seconds. Saving... [37338] 29 Apr 07:52:39.083 * Background saving started by pid 27656 

Pero nada sucedió lo que causaría esto.

Ya he tenido problemas cuando el time de espera de Sentinel era de bajo (100ms) así que cambié a 5s. No hubo times muertos hasta hoy.

Además, 5 serveres son networkingundantes. Cuando doy vuelta de la mitad de ellos, la aplicación comienza a disminuir. No hay problemas de CPU, Mem, disco que pueda ver.

Ayer, tuve problema que el server de aplicaciones networkingujo el tráfico cuando la mitad de ellos estaban apagados. El server comenzará a estar inactivo durante unos segundos y, de nuevo, funcionará normalmente. Nginx (server frontal) utiliza proxypass para equilibrar el tráfico con el server de aplicaciones. Dudé en la gama de puertos (netstat contó más de 90k conexiones). También, había más de 30k conexiones de 127.0.0.1:someport a 127.0.0.1:networkingisport en timewait. Aplicación -> Haproxy Redis.

 net.ipv4.ip_local_port_range = 10000 65535 

Además, he activado:

 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 

Después de que no hubo más tráfico pierde pero la aplicación es todavía demasiado lento y no hay razones obvias para eso (cpu, mem, hdd … todo está bien).

¿Qué puedo comprobar más?

  • utilizando Nginx como proxy inverso para apache o independiente
  • PHP actualizado a 5.3.8 - No se puede instalar / actualizar extensiones
  • Buscando detalles sobre cómo funciona la recolección de basura de session de PHP
  • ¿Dónde apache almacena la location de php?
  • Copiar el website de PHP en la carpeta virtual bajo IIS 8.5
  • chown / owner group permiso de confusión en la stack de la lámpara
  • server apache no se puede iniciar a causa de phpmyadmin.conf
  • ¿El código PHP se muestra en text claro?
  • ¿Por qué el POSTE puede causar un agujero negro?
  • no hay errores de PHP en Apache?
  • Cumplimiento de PCI-DSS
  • Reescritura / última produce error de server
  • Instalar una extensión php (xdiff) de pecl en Linux
  • El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.