Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Mitiga los problemas de rendimiento con un set de réplicas autogestionado

En un set de réplicas de tres miembros con una arquitectura primario-secundario-árbitro (PSA) o un clúster fragmentado con particiones PSA de tres miembros, un nodo portador de datos que esté inactivo o retrasado puede provocar problemas de rendimiento.

Si uno de los nodos que contienen datos se desconecta, el otro nodo se convierte en el primario. Guarda con w:1 siguen teniendo éxito en este estado, pero las grabaciones con nivel de confirmación de escritura (write concern) "majority" no pueden tener éxito y el commit punto empieza a retrasarse. Si tu set de réplicas PSA contiene un secundario retrasado y tu set de réplicas requiere dos nodos para que la mayoría confirme un cambio, tu punto de confirmación también se retrasa.

Con un punto de confirmación retrasado, dos cosas pueden afectar el rendimiento de tu clúster:

  • El motor de almacenamiento guarda todos los cambios que ocurren después del punto de confirmación en el disco para mantener un historial duradero. La E/S extra de estas escrituras tiende a aumentar con el tiempo. Esto puede tener un gran impacto en el rendimiento de guardar y aumentar la presión de caché.

  • MongoDB permite que el oplog crezca más allá de su límite de tamaño configurado para evitar borrar el majority commit point.

Para reducir la presión de la caché y el aumento del tráfico de escritura, configure votes: 0 y priority: 0 para el nodo que está no disponible o con retraso. Para las operaciones de escritura emitidas con "mayoría", solo se consideran los nodos con derecho a voto para determinar el número de nodos necesarios para realizar una confirmación por mayoría. Configurar la configuración del nodo en votes: 0 reduce el número de nodos necesarios para comprometer una escritura con nivel de confirmación de escritura (write concern) "majority" de dos a uno y permite que estas escrituras tengan éxito.

Una vez que se haya alcanzado el secundario, puedes usar el método rs.reconfigForPSASet() para reponer votes a 1.

Nota

En versiones anteriores de MongoDB, enableMajorityReadConcern y --enableMajorityReadConcern se podían configurar para permitir la desactivación del nivel de consistencia de lectura por defecto "majority" que tenía un efecto similar.

Para reducir la presión de caché y el aumento del tráfico de escritura en una implementación con una arquitectura primaria-secundaria-árbitro de tres miembros (PSA), configure { votes: 0, priority: 0 } para el secundario que esté no disponible o retrasado:

cfg = rs.conf();
cfg["members"][<array_index>]["votes"] = 0;
cfg["members"][<array_index>]["priority"] = 0;
rs.reconfig(cfg);

Si quieres cambiar la configuración de la secundaria más tarde, usa el método rs.reconfigForPSASet().

Volver

Modificar PSA set de réplicas de forma segura

En esta página