Report execution can be balanced across servers to improve performance. As one execution is being processed subsequent report execution calls will be sent to different servers. For each new job, Exago will prioritize the server with the lowest load (according to CPU and memory load) and ratio of running jobs to max jobs allowed. The number of jobs on a server will not exceed the value specified by the simultaneous_jobs_max setting.
In versions pre-v2016.2.12, machine load is not taken into account, and jobs are sent to different servers in the order that they are received ("round-robin").
The following instructions provide an overview for setting up report execution on remote servers:
On each remote execution server:
- Install the Scheduler Service. For detailed instructions see: Scheduler Service Installation.
- The following conditions must be met:
- The Scheduler Service version must match the Web Application version.
- The Scheduler’s language files and the Exago Application’s language files must match.
- Any custom assemblies must be present in the Scheduler directory.
- Configure the Scheduler Service For detailed instructions see: Configuring Scheduler Services.
- By default the execution host will pass the reports back to the Exago Application. In order to save reports to an external repository, see: Saving Scheduled Reports to External Repository.
Multiple Scheduler Services can point to the same repository.
In the Exago Web Application:
- Using the Admin Console, open the Scheduler Settings
- Set Enable Remote Report Execution to True in the Report Scheduling Settings.
- In Remote Execution Remoting Host, provide a comma or semicolon delimited list of servers. Servers must include the procotol, server name or IP address and port number. (e.g. http://MyHttpServer1:2001, tcp://MyTcpServer:2121). The servers will be prioritized based on the listed order.
When multiple remote execution hosts are enabled, the Exago application will prioritize the one with the lowest number of queued jobs.
When an execution host is used for both scheduling and remote execution, the Exago application will place immediate priority on Remote Execution tasks.