Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-09-21 GMT+08:00

¿Cómo administro el balanceador?

Escenario

El balanceador ocupa los recursos del sistema de los nodos de un clúster para migrar chunks, lo que puede deteriorar el rendimiento de lectura y escritura del clúster. Si ha habilitado la fragmentación de datos y tiene altos requisitos en cuanto al rendimiento de la instancia, o si el tráfico de servicio tiene diferencias de pico y fuera de pico, para evitar un impacto negativo en su negocio, realice las siguientes operaciones:

Restricciones

  • El balanceador solo se aplica a instancias de clúster.
  • DDS habilita el balanceador de forma predeterminada.

Habilitación del balanceador

  1. Conéctese a una instancia de clúster mediante Mongo Shell.
  2. Después de conectarse a un nodo mongos, ejecute el siguiente comando para cambiar a la base de datos de configuración:

    use config

  3. Ejecute el siguiente comando para habilitar el balanceador:

    sh.setBalancerState(true)

Deshabilitación del balanceador

  1. Conéctese a una instancia de clúster mediante Mongo Shell.
  2. Después de conectarse a un nodo mongos, ejecute el siguiente comando para cambiar a la base de datos de configuración:

    use config

  3. Ejecute el siguiente comando para comprobar el estado del balanceador:

    while( sh.isBalancerRunning() ) {
              print("waiting...");
              sleep(500);
    } 
    • Si la salida del comando está vacía, el balanceador no está ejecutando ninguna tarea. En este caso, puede proceder a desactivar el balanceador.
    • Si la salida del comando es waiting, el balanceador está migrando chunks. En este caso, no puede desactivar el balanceador. De lo contrario, los datos pueden volverse incoherentes.

  4. Si el resultado del comando en 3 está vacío, ejecute el siguiente comando para deshabilitar el balanceador:

    sh.stopBalancer()

Programación de una ventana de balanceo

Para evitar que la migración de chunk afecte a su empresa, puede realizar las siguientes operaciones para programar una ventana de balanceo.

Antes de programar una ventana de balanceo, asegúrese de que el balanceador está habilitado haciendo referencia a Habilitación del balanceador.

  1. Conéctese a una instancia de clúster mediante Mongo Shell.
  2. Después de conectarse a un nodo mongos, ejecute el siguiente comando para cambiar a la base de datos de configuración:

    use config

  3. Ejecute los siguientes comandos para programar una ventana de balanceo:

    db.settings.update(
       { _id: "balancer" },
       { $set: { activeWindow : { start : "<start-time>", stop : "<stop-time>" } } },
       { upsert: true }
    )
    • <start-time> indica el comienzo de la ventana de balanceo. Especifique la hora en el formato HH:MM (hora UTC). Para los valores de HH, utilice valores de hora que van de 00 a 23. Para el valor MM, utilice valores de minutos que van desde 00 hasta 59.
    • <stop-time>: indica el final de la ventana de balanceo. Especifique la hora en el formato HH:MM (hora UTC). Para los valores de HH, utilice valores de hora que van de 00 a 23. Para el valor MM, utilice valores de minutos que van desde 00 hasta 59.

    Puede ejecutar el comando sh.status() para comprobar una programación de ventana de balanceo. El siguiente resultado del comando en Figura 1 muestra que la ventana de balanceo es de 22:00 a 24:00.

    Figura 1 Comprobación de un programa de ventana de balanceo

Eliminación de una tabla de planificación de ventana de balanceo

Si ha establecido la ventana de balanceo y desea quitar la programación para que el balanceador esté siempre en ejecución, ejecute el siguiente comando:

db.settings.update({ _id : "balancer" }, { $unset : { activeWindow : true } })