Configurar la ejecución distribuida

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Ejecución distribuida >

Configurar la ejecución distribuida

La ejecución distribuida se fundamenta en el concepto de las filas de ejecución.

 

Una fila de ejecución es un "procesador" de trabajos que controla cómo se ejecutan las instancias de trabajo. Cada trabajo se asigna a una fila de ejecución de destino para que se ejecute en ella. Puede asignar un trabajo a una fila de ejecución al configurar un trabajo y este se enviará a esa fila en el momento de ejecución. La fila controla cuántas instancias de trabajo (de todos los trabajos que tenga asignados esa fila) pueden ejecutarse al mismo tiempo, los intervalos entre ejecuciones y otras opciones. Las filas pueden ser locales y pertenecer a un solo trabajo o ser compartidas entre varios trabajos. Cuando se asignan varios trabajos a una misma fila de ejecución, estos compartirán la fila para su ejecución.

 

Las filas compartidas ofrecen un mecanismo flexible para controlar la carga del servidor tanto en un solo equipo FlowForce como cuando varias instancias de FlowForce Server se ejecutan como un clúster. Para configurar el equilibrio de carga hay que seguir varios pasos:

 

1.Primero debe crear una fila a partir de una página dedicada, de forma similar a como crearía otros datos de configuración de FlowForce, como credenciales o trabajos.
2.Por cada fila debe definir una configuración de procesamiento. Por ejemplo, puede configurar una fila para que se ejecute solamente en instancias maestras, solamente en instancias trabajadoras o en ambos tipos. También es posible definir criterios alternativos básicos. Por ejemplo, una fila se puede configurar para que se ejecute por defecto en un maestro y todos sus trabajadores; sin embargo, si ninguno de esos trabajadores estuviera disponible, la fila se ejecutaría únicamente en el maestro.
3.Edite la configuración de cada trabajo y asigne el trabajo a la fila personalizada creada previamente.

 

Crear filas

Las filas cuentan con el mismo mecanismo de acceso de seguridad que otros objetos de la configuración de FlowForce Server. Es decir, que un usuario debe tener el privilegio "Definir filas de ejecución" para poder crear filas. Además, los usuarios solo pueden ver las filas o asignar trabajos a las mismas si cuentan con los permisos de contenedor correspondientes, que no son lo mismo que los privilegios (véase también ¿Cómo funcionan los privilegios?). Por defecto, cualquier usuario autenticado tiene el permiso "Fila: uso", que significa que pueden asignar trabajos a filas. Para restringir el acceso a las filas, navegue hasta el contenedor en el que está definida la fila y cambie los permisos del contenedor a "Fila: sin acceso" para el rol autenticado. A continuación asigne el permiso "Fila: uso" al rol o usuario que lo necesite. Para más información consulte el apartado Restringir el acceso al contenedor /public.

 

 

Para crear una fila:

1.Haga clic en Configuración y después navegue hasta el contenedor en el que quiere crear la fila.
2.Haga clic en Crear y después en Crear fila.

ff_create_queue

3.Introduzca un nombre de fila y, si quiere, una descripción. Para el resto de opciones, consulte el cuadro del punto siguiente.
4.Haga clic en Guardar.

 

Configurar fila de trabajos

Estas son las opciones disponibles para configurar una fila.

 

Ejecutar en

Indica cómo se deben ejecutar todas las instancias de esta fila:

 

maestro o cualquier trabajador: las instancias de trabajos que son parte de esta fila se ejecutarán indiscriminadamente en el equipo maestro y en los trabajadores, en función de qué núcleos del servidor estén disponibles.
solo maestro: las instancias de trabajos se ejecutarán solamente en el equipo maestro.
cualquier trabajador: las isntancias de trabajos se ejecutarán en cualquier trabajador disponibles pero nunca en el maestro.

Tiempo mínimo entre las ejecuciones

Una fila de ejecución ofrece franjas de ejecución; el número de las mismas depende de la opción "número máximo de instancias en paralelo", cuyo valor se multiplica por el número de trabajadores asignados conforme a la regla activa actualmente. Cada franja ejecuta instancias de trabajo de forma secuencial.

 

La opción "Tiempo mínimo entre las ejecuciones" mantiene una franja marcada como ocupada durante un breve espacio de tiempo después de que haya terminado el trabajo, de forma que no reciba el siguiente trabajo de inmediato. Esta táctica reduce el rendimiento máximo para esta fila de ejecución pero obtiene tiempo de CPU para otras filas de ejecución y otros procesos del mismo equipo.

Nº máximo de ejecuciones en paralelo

Esta opción define el número de veces que se puede ejecutar el mismo trabajo en paralelo en el servidor.

 

El procesamiento en paralelo depende del número de núcleos de servidor que FlowForce Server tenga disponibles. Por ejemplo, si establece este valor en 12 y solo existen dos núcleos con licencia, aparecerán 12 trabajos ejecutándose en paralelo, aunque únicamente dos progresarán.

 

Puede definir varios conjuntos de opciones de fila, cada una con diferentes requisitos de procesamiento, haciendo clic en el botón add. Para cambiar la prioridad de un conjunto de opciones en concreto (que llamaremos "regla") haga clic en los botones Hacia arriba up_arrow y Hacia abajo down_arrow. Por ejemplo, puede definir una regla para el caso en que solo el maestro está disponible y otra regla para el caso en que tanto el maestro como los trabajadores están disponibles. Esto permite crear un mecanismo de opciones alternativas para la fila que dependen del estado del clúster en un momento dado. Al procesar filas, FlowForce Server vigila constantemente el estado del clúster y "sabe" si algún trabajador no está disponible. Por lo tanto, si configura varias reglas de dila, FlowForce Server las evaluará en el orden definido, de arriba a abajo, y aplicará la primera regla a la que se le haya asignado al menos un miembro del clúster conforme a la opción "ejecutar".

 

Como ejemplo, pensemos en una configuración en la que el clúster incluye un maestro y cuatro equipos trabajadores. La configuración de las filas sería la de la siguiente imagen:

ff_queue_settings

Con la configuración anterior FlowForce procesaría la fila como sigue, en función del estado del clúster en ese momento:

 

Si todos los trabajadores están disponibles, se cumple la primera regla, que se aplica. Es decir, se permite que se ejecuten hasta 16 instancias de trabajo al mismo tiempo (4 instancias por cada trabajador). El tiempo mínimo entre ejecuciones es de 0 segundos.
Si solo tres de los trabajadores están disponibles, se sigue cumpliendo la primera regla. Es decir, se permite que se ejecuten hasta 12 trabajos simultáneamente y el tiempo mínimo entre ejecuciones es de 0 segundos.
Si no hay ningún trabajador disponible, se cumple y aplica la segunda regla. Es decir, no se permite que se ejecute más que una instancia al mismo tiempo y el tiempo mínimo entre ejecuciones es de 5 segundos.

 

Este tipo de configuración hace que sea posible ejecutar instancias sin trabajadores. Observe que la regla "solo maestro" es algo más estricta (solo una instancia y 5 segundos entre ejecuciones) para no absorber tanta potencia de procesamiento del equipo maestro si fallan todos los trabajadores.

 

Asignar trabajos a filas

Una vez que ha configurado la fila, el siguiente paso es editar la configuración de cada trabajo que quiere asignar a esta fila. Encontrará la configuración de filas en la página de configuración de trabajos, en el grupo "Configurar fila de trabajos":

ff_assign_queue

Nota: si selecciona Definir fila local, en el momento de ejecución FlowForce Server asignará instancias de este trabajo a una fila predeterminada con la configuración local que especifique (véase también Configurar filas de trabajos). Una fila local no admite la distribución del procesamiento. Para que puedan usar esa opción, la fila debe crearse como independiente (externa al trabajo).


© 2019 Altova GmbH