Altova FlowForce Server 2023 Advanced Edition

Configurar la ejecución distribuida

Inicio Anterior Inicio Siguiente

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. La fila controla cuántas instancias de trabajo (de todos los trabajos asignados a esa fila) pueden ejecutarse al mismo tiempo y los intervalos entre ejecuciones. Por defecto, la configuración de las filas es local a nivel del trabajo, pero también puede definir filas como objetos independientes que comparten varios trabajos. Cuando se asignan varios trabajos a una misma fila de ejecución, la comparten para ser ejecutados.

 

Las filas usan el mismo mecanismo de acceso de seguridad que otros objetos de configuración de FlowForce. Es decir que un usuario debe tener el privilegio "Definir filas de ejecución" para poder crear filas, véase también ¿Cómo funcionan los privilegios?. Además, los usuarios pueden ver filas o asignar trabajos a filas solo si tienen los permisos de contenedor correspondientes (que no son lo mismo que los privilegios), véase también ¿Cómo funcionan los permisos?. Por defecto, cualquier usuario autenticado tiene el permiso "Fila: usar", lo 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 el permiso del contenedor a "Fila: sin acceso" para el rol authenticated. A continuación asigne el permiso "Fila: usar" a los roles o usuarios que quiera. Para más información consulte Restringir el acceso al contenedor /public.

 

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.

 

Nota:no se admiten clústers de sistemas distintos, lo que significa que no se puede establecer una conexión trabajador-maestro entre dos sistemas operativos diferentes (por ejemplo, entre Linux y Windows).

 

Crear filas

Para crear una fila como objeto independiente:

 

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

1.Introduzca un nombre de fila y, si quiere, una descripción. Para el resto de opciones, consulte el cuadro del punto siguiente.

2.Haga clic en Guardar.

 

Configurar fila de trabajos

Estas son las opciones de configuración de las filas.

 

Nombre de fila

Introduzca un nombre que identifique a la fila. Este campo es obligatorio y no puede empezar ni terminar con espacios. Solo puede contener letras, dígitos, espacios individuales y los caracteres guion bajo ("_"), guion ("-") y punto (".").

 

Este campo solo se usa si la fila está definida como independiente (no local).

Descripción de fila

También puede introducir una descripción de la fila.

 

Este campo solo se usa si la fila está definida como independiente (no local).

Ejecutar en

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

 

maestro o cualquier trabajador: las instancias de trabajos que son parte de esta fila se ejecutan indistintamente en los equipos maestro y trabajador, según los núcleos disponibles.

solo maestro: las instancias de trabajos se ejecutan solamente en el equipo maestro.

cualquier trabajador: las instancias de trabajos se ejecutan en cualquier equipo trabajador disponible, pero nunca en el equipo maestro.

Tiempo mínimo entre 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 ejecuciones 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.

Máximo de ejecuciones recuperadoras en paralelo

Esta opción define el número de huecos disponibles en la cola. Cada hueco ejecuta instancias de trabajos de forma secuencial, por lo que esta opción determina cuántas instancias del mismo trabajo se ejecutan en paralelo en la cola actual. Tenga en cuenta que el número de instancias que se ejecuten en paralelo tiene un impacto en los recursos disponibles del equipo. Puede aumentar el valor de esta opción para filas que procesan trabajos "ligeros" que no realizan operaciones de entrada/salida con una gran carga o para trabajos que no necesiten mucho tiempo de CPU. La opción predeterminada 1 es la más conservadora y se puede usar para colas que procesan trabajos que requieren un uso intensivo de los recursos (de forma que solo se procesa uno de esos trabajos "pesados" cada vez).

 

Esta opción no afecta al número máximo de solicitudes HTTP en paralelo que acepta FlowForce Server (como los de clientes que invocan trabajos expuestos como servicios web). Para más detalles consulte Reconfigurar grupos de hilos en FlowForce Server.

 

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).

© 2017-2023 Altova GmbH