Tamaño de colección de la base de datos e instancias de ejecución

En la mayoría de los entornos Spectrum Technology Platform, hay múltiples flujos en ejecución simultáneamente, ya sean trabajos por lote o servicios que responden a un servicio web o solicitudes API. Para optimizar el procesamiento simultáneo, puede utilizar la configuración de tamaño de colección de la base de datos, en la cual se limita el número de solicitudes simultáneas que maneja una base de datos de Spectrum, además de las instancias de ejecución para controlar la cantidad de instancias de una etapa de flujo que se ejecutan simultáneamente. Ambas configuraciones deben ajustarse en conjunto para alcanzar un rendimiento óptimo.

Tamaño de colección de la base de datos

Las bases de datos Spectrum contienen los datos de referencia utilizados en determinadas etapas, como datos postales para validar direcciones, o datos de geocodificación usados para geocodificar direcciones. Estas bases de datos se pueden configurar para que acepten varias solicitudes simultáneas de las etapas de flujo de datos o los servicios que los usan y, así, mejorar el rendimiento de las solicitudes de servicios o flujos de datos. El tamaño de colección de la base de datos establece el número máximo de solicitudes simultáneas que procesará una base de datos de Spectrum. De manera predeterminada, las bases de datos Spectrum tienen un tamaño de grupo 4, lo que indica que pueden procesar cuatro solicitudes simultáneamente.

El tamaño óptimo de grupo varía según el módulo. Generalmente se pueden visualizar mejores resultados al configurar el tamaño de grupo entre la mitad o el doble de la cantidad de CPU en el servidor, donde el tamaño óptimo de grupo para la mayoría de los módulos es la misma cantidad de CPU. Por ejemplo, si su servidor tiene cuatro CPU, puede que desee probar con un tamaño de grupo entre 2 (la mitad de la cantidad de CPU) y 8 o (el doble de la cantidad de CPU), donde el tamaño óptimo posiblemente sea 4 (la cantidad de CPU).

Cuando modifique el tamaño de grupo, también debe considerar la cantidad de instancias de ejecución especificadas en el flujo datos para las etapas que acceden a la base de datos. Considere por ejemplo un flujo de datos que tiene una etapa Geocode US Address (Geocodificación de direcciones en Estados Unidos)e está configurada para usar una instancia de ejecución. Si establece en 4 el tamaño de grupo para la base de datos de geocodificación de EE. UU., no verá una mejora en el rendimiento, ya que solo habrá una instancia de ejecución y por lo tanto, habría solo una solicitud a la vez para la base de datos. Sin embargo, si aumentara a 4 la cantidad de instancias de ejecución para Geocode US Address, entonces podría observar una mejora en el rendimiento, ya que habrían cuatro instancias de Geocode US Address accediendo simultáneamente a la base de datos y, por lo tanto, se estaría usando el grupo completo.

Instancias de ejecución

Cada etapa de un flujo de datos opera de forma asincrónica en su propio subgrupo y es independiente de cualquier otra etapa, lo que permite el procesamiento paralelo de las etapas de un flujo de datos y la utilización de más de una instancia de ejecución por etapa. Esta característica es útil en los flujos de datos donde algunas etapas procesan datos más rápido que otras, lo que puede derivar en una distribución desigual del trabajo entre los subgrupos. Por ejemplo, considere un flujo de datos que consiste en las siguientes etapas:



Según la configuración de las etapas, es posible que la etapa Validate Address (Validación de direcciones) procese los registros más rápidamente que la etapa Geocode US Address (Geocodificación de direcciones en Estados Unidos). Si eso sucede, en algún punto durante la ejecución del flujo de datos, la etapa Validate Address habrá procesado todos los registros, mientras que la etapa Geocode US Address todavía tendrá registros por procesar. Para mejorar el rendimiento de este flujo de datos, es necesario mejorar el rendimiento de la etapa más lenta; en este caso, Geocode US Address. Una forma de hacerlo es especificando múltiples instancias de ejecución de la etapa. Configurar la cantidad de instancias de ejecución en dos, por ejemplo, significa que habrá dos instancias de esa etapa disponibles para procesar registros, cada una en su propio subgrupo.

Como regla general, la cantidad de instancias de ejecución debe ser, por lo menos, igual a la cantidad de instancias del componente remoto. Consulte la Guía de administración para obtener información sobre los componentes remotos. A pesar de que la especificación de múltiples instancias de ejecución puede ayudar a mejorar el rendimiento, si ese valor es muy alto, es posible que se agoten los recursos de su sistema, lo que derivará en un menor rendimiento.

Nota: La utilización de múltiples instancias de ejecución solo mejora el rendimiento cuando se trata de trabajos o solicitudes de servicio en ejecución con más de un registro.

Procedimiento de ajuste

Para encontrar la configuración adecuada para el tamaño de colección de la base de datos y las instancias de ejecución, es necesario experimentar diferentes configuraciones hasta detectar las que maximicen los recursos disponibles del servidor sin sobrecargarlos y causar una reducción en el rendimiento.

Nota: Debe optimizar el tamaño de colección del flujo de datos antes de ajustar el tamaño de colección de la base de datos. Para obtener información sobre la optimización del tamaño de colección del flujo de datos, consulte Tamaño de colección del flujo de datos.
  1. Comience con la búsqueda de datos de muestra para usarlos a medida que intenta diferentes configuraciones. El conjunto de datos de muestra debe ser suficientemente grande para que el tiempo de ejecución se pueda medir y validar con respecto a la uniformidad. Asimismo, los datos de muestra deben representar los datos reales que desea procesar. Por ejemplo, si realiza pruebas de rendimiento para geocodificación, asegúrese de que sus datos de prueba tengan un número igual de registros para todos los países que desea geocodificar.
  2. Si está probando un servicio o flujo de datos que requiere el uso de un recurso de base de datos, como bases de datos postales o bases de datos de geocodificación, asegúrese de tener la versión más reciente de la base de datos instalada.
  3. Después de que tenga los datos de muestra y haya instalado los recursos de bases de datos más recientes, cree un flujo de datos simple que lea datos de un archivo, los procese con la etapa que desea optimizar y los escriba en un archivo. Por ejemplo, si desea probar la configuración de rendimiento para Validate Address, cree un flujo de datos que conste de Read from File, Validate Address y Write to File.
  4. Establezca el tamaño de colección de recursos de la base de datos en 1:
    1. Abra Management Console.
    2. Vaya a Recursos > Bases de datos de Spectrum.
    3. Seleccione el recurso de base de datos que desea optimizar y haga clic en el botón Modificar .
    4. En el campo Tamaño de colección, especifique 1.
    5. Haga clic en Aceptar.
  5. Establezca las instancias de ejecución de la etapa en 1:
    1. Abra el flujo de datos en Enterprise Designer.
    2. Haga doble clic en la etapa que desee configurar para el uso de múltiples instancias de ejecución.
    3. Haga clic en Ejecución.
      Nota: No todas las etapas pueden usar múltiples instancias de ejecución. Si no existe botón Ejecutar en la parte inferior de la ventana de la etapa, esta última no puede usar múltiples instancias de ejecución.
    4. Seleccione Local y especifique 1.
    5. Haga clic en Aceptar para cerrar la ventana Rendimiento de ejecución y luego haga clic en Aceptar para cerrar la etapa.
  6. Calcule el rendimiento del punto de referencia con la ejecución constante del flujo de datos y el registro de los valores promedio de:
    • Tiempo transcurrido
    • Utilización del CPU
    • Utilización de la memoria
    Consejo: Puede utilizar la consola JMX para supervisar el rendimiento. Para obtener más información, consulte Cómo controlar el rendimiento con la consola JMX.
  7. Ejecute múltiples instancias del trabajo simultáneamente, si este es un caso de uso que debe admitirse. Registre el tiempo transcurrido, la utilización del CPU y la utilización de la memoria para cada escenario.
    Consejo: Puede utilizar un monitor de archivos para ejecutar múltiples instancias de un trabajo a la vez. Para obtener más información, consulte Activación de un flujo con un archivo de control.
  8. Aumente el tamaño de colección del recurso de la base de datos y la configuración de las instancias de ejecución de la etapa.
  9. Reinicie el servidor.
  10. Ejecute nuevamente el flujo de datos, registrando el tiempo transcurrido, la utilización del CPU y la utilización de la memoria.
  11. Continúe para aumentar el tamaño de colección del recurso de la base de datos y las instancias de ejecución de la etapa hasta que comience a ver una disminución en el rendimiento.
  12. Si está probando el rendimiento de la geocodificación, repita este procedimiento utilizando una entrada de país simple y múltiple.