Tuning the Flow Service

This section provides guidelines for tuning the Flow Service server for your business needs, server hardware, and system requirements. Here you can find guides to tuning the settings for server-side services, such as the flow engine and HTTP listener.

See Also

You can use the Flow Service's monitoring tools to track and monitor performance metrics for the server.

Tuning Threading and Execution Settings

You can optimize flow-processing performance by tuning the processes that compose the flow execution model:

Following flow execution at the process level

The following diagram traces the processing of a request: listeners receive requests from external systems and the flow engine executes the flows using multithreading. The listeners and flow engine are part of the FlowService process, the physical process that executes flows.

The diagram also maps the parts of the execution model that you can tune: the thread pool and request queue that make up the listeners and flow engine. Below are the main settings you use to tune performance:

processing model

Executing flows in the flow engine

The flow engine is the part of the FlowService process that compiles and executes flows. See below for the procedure that the flow engine follows to execute the requests it receives:

  1. Inside the flow engine, accepter threads receive requests sent from any and all listeners.
  2. The accepter threads add the requests to the queue.
  3. An available worker in the pool takes the first request from the queue and begins processing the flow.

Executing a flow in a worker thread

The entire flow that the request contains executes in a single worker thread, including any subflows and error-processing flows. While the worker thread executes the components from the start component to the end component, worker threads hold in memory execution data like flow variable values, stream data, etc.

The worker thread returns to the free state after the flow ends.

Tuning the Flow Engine

This section provides performance tuning guidelines for the flow engine's settings.

Configure the flow engine's settings in the Flow Engine section on the Settings > Services > Flow page in the management console.

Management Console Flow Engine

Guidelines for tuning threading and execution settings

Tuning other flow engine settings

Adjust the Connection Pool Size based on your changes to the Thread Pool Size.

High-priority requests and parallel requests provide other avenues for optimizing flow performance. In the flow engine settings, you can configure the Max Parallel Thread Count and Max High Priority Thread Count. You can find use cases and configuration guides in the Flow Service Manual's "More Topics": see Executing High-Priority Requests and Parallel Subflows.

Tuning Listeners

This section provides guidelines to tuning settings for listeners:

Configure listener settings on the Settings > Services > Flow page in the management console.

Management Console HTTP Listener

Guidelines for tuning listener settings

Other Performance Settings

You can set Java startup options on the management console's Settings > Services > Flow page, under the Startup section.

Measure the amount of memory used by the Flow Service and set the Max Memory Size and Initial Memory Size accordingly.

 

To the top of this page