Tamaño de colección del flujo de datos

El tamaño de colección del flujo de datos controla la forma en que las instancias de cada flujo de datos de servicio pueden ejecutarse a la vez. Puede aumentar el tamaño de colección para mejorar el rendimiento hasta un punto, pero el aumento del tamaño de colección puede causar una reducción del rendimiento si el servidor no tiene los recursos de memoria o de procesador disponibles para manejar varias instancias simultáneas de flujo de datos de servicio. Si los recursos de memoria o de procesador se utilizan al límite, es probable que note que la reducción del tamaño de colección del flujo de datos, la cual limita la cantidad de instancias simultáneas de cada flujo de datos de servicio, puede ofrecer más rendimiento general aceptable.

Durante la búsqueda del tamaño de colección del flujo de datos adecuado para el sistema, recuerde que el tamaño de colección del flujo de datos limita la cantidad de instancias de cada flujo de datos de servicio, no el número total de flujos de datos de servicio simultáneos. Por ejemplo, en la configuración predeterminada de 8, cada flujo de datos de servicio puede tener ocho instancias en ejecución a la vez. Si existen dos flujos de datos de servicio y cada uno utiliza el máximo de 8 instancias simultáneas, habría 16 instancias de flujos de datos de servicio en ejecución simultáneas en el sistema.

Nota: El tamaño de colección del flujo de datos solo afecta el rendimiento de los servicios, no los trabajos.

Para configurar el tamaño de colección del flujo de datos:

  1. Habilite el control de rendimiento de la consola JMX. Para obtener más información, consulteCómo controlar el rendimiento con la consola JMX.
  2. Envíe múltiples solicitudes simultáneas al servicio a través de servicios web o la API.
  3. En la consola JMX, observe el tiempo mostrado en ServiceRuntimeManager.borrow.DataflowName. Esto muestra el tiempo de espera de una solicitud de servicio para obtener un espacio en la colección antes de ejecutarse. El tiempo se muestra en milisegundos.
  4. Abra este archivo:

    SpectrumLocation\server\app\conf\dataflowpool-pool-sizes.properties

  5. Aumente o disminuya el tamaño de colección de acuerdo con lo que, según su opinión, producirá un mejor rendimiento. El tamaño de colección predeterminado es ocho.
    • Si el tiempo de espera que se mostró en ServiceRuntimeManager.borrow.DataflowName fue alto, considere aumentar el tamaño de colección del flujo de datos para disminuir el tiempo de espera de las solicitudes de servicio. O puede optar por un tiempo de espera alto para regular las solicitudes y no sobrecargar los recursos del servidor.
    • Si el tiempo de espera que se mostró en ServiceRuntimeManager.borrow.DataflowName no fue alto y el rendimiento es bajo, es posible que se deba a que el servidor no cuenta con los recursos de memoria o de procesador para manejar varios flujos de datos de servicio simultáneos. Considere reducir el tamaño de colección del flujo de datos para regular las solicitudes.
  6. Guarde y cierre el archivo.
  7. Envíe múltiples solicitudes simultáneas nuevamente y observe el tiempo de espera que se muestra en ServiceRuntimeManager.borrow.DataflowName en la consola JMX.
  8. Experimente con tamaños de colección adicionales hasta que encuentre la configuración óptima.