Skip to main content
Version: 6.1

Schedule Balancer

Overview

When many search jobs are configured, their runs may overlap and create peak load on the cluster. Schedule Balancer analyzes the run schedule, identifies intervals with the highest number of concurrent runs, and suggests a new schedule that reduces peak load.

Balancing is interactive: the system only suggests a new distribution, and the changes are applied after the user confirms them.

Opening Schedule Balancer

Go to Main Menu - System Parameters - Module Settings. On the page that opens, select JOB SCHEDULER - Schedule Balancer.

Schedule Balancer menu item

The Schedule Balancer page opens with a chart showing the distribution of job runs over a 24-hour period. The Periodicity filter is located below the chart. The job list appears after you select an interval on the chart.

Schedule Balancer page

Viewing the Distribution and Selecting Jobs

Run Distribution Chart

The chart shows peak load over a 24-hour period. Each point represents the maximum number of concurrent job runs within an aggregation interval. The horizontal axis shows the time of day without dates, and the vertical axis shows the number of concurrent runs.

An explanation of the chart is available from the icon next to Peak load.

Use the 5 min., 15 min., and 30 min. buttons on the right side of the panel to change the aggregation interval. The default and minimum available interval is 5 min..

Changing the aggregation interval

When you hover over the chart, the closest interval point and a tooltip with its time and peak load value are displayed.

Chart point tooltip

Use the slider above the chart to limit the displayed time range. When you zoom in, points remain visible and labels appear more frequently on the time axis. You can also select a time interval directly on the chart.

Chart zoom

Jobs in an Interval

Click a point on the chart to open a panel listing the jobs in the selected interval. The panel header displays the interval date and time and the number of jobs in it.

Jobs in an interval

The panel contains:

  • the Search by task name field for searching within the interval
  • the Select all interval checkbox for selecting all jobs in the list
  • the Job and Clients columns; the latter is populated for SP jobs that run on multiple clients
  • pagination controls with a page size selector

A type badge, such as Local, is displayed next to the job name. The run periodicity and balancing status are displayed below the name:

  • Balanceable - a job with a regular schedule whose run time can be changed
  • Non-balanceable - a job with an irregular schedule whose run time is not changed

An explanation of Non-balanceable is available from the icon next to the label.

Selecting Jobs for Balancing

You can balance the entire list, individual jobs, or jobs with a specific periodicity:

  • entire list - select the Select all jobs checkbox
  • by interval - click a point on the chart and then select Select entire interval or select individual job checkboxes in the panel that opens
  • by periodicity - use the Periodicity filter; click a period, such as 1 min. or 5 min., to select all balanceable jobs with that periodicity

The number of jobs with each schedule is displayed next to the corresponding period. When jobs with a given periodicity are selected, the counter is highlighted and displays the number of selected jobs.

Periodicity filter

The Selected counter in the upper-left corner of the page shows the number of selected jobs relative to the total number. Click Reset selection to clear the job selection.

Selected jobs counter and selection reset

Important

The Balance button is enabled only when at least one job is selected.

Previewing and Applying the Schedule

After you click Balance, the system searches for an optimal schedule and switches the page to preview mode. The chart displays two lines:

  • Current schedule - a dashed line showing the current distribution of job runs
  • Balanced schedule - a solid green line showing the suggested distribution

Suggested distribution preview

The Before and After values in the upper-left corner of the page show peak load before and after balancing. An explanation is available from the icon next to these values.

Below the chart, the Schedule changes table contains the Name, Current schedule, and Balanced schedule columns. The schedule columns show the cron expression and its description. For jobs that run every minute, the offset is also displayed, for example, Offset: 30 sec.. All jobs are selected by default. Clear the checkboxes for jobs whose schedules should not be changed.

For some jobs, the suggested schedule may be the same as the current one. Search by name and pagination work in the same way as in the interval jobs panel.

Schedule changes table

The following actions are available:

  • Save - apply the suggested schedule to the selected jobs
  • Back - return to job selection without applying changes

If the selected jobs do not require changes, the table is replaced with the message The schedule is already balanced - no changes are required.

Balancing Is Not Automatic

Job schedules are changed only after you click Save. Leaving the page at any step does not apply any changes.

How the New Schedule Is Generated

Schedule Balancer selects a new run time for each job according to the following rules:

  • the new run time is written to the job schedule's cron expression
  • jobs that run every minute are distributed across seconds within the minute; the shift is written to the job's Offset in seconds field
  • jobs with irregular schedules, such as one-time jobs or jobs scheduled for specific dates or days of the week, are not balanced but are included in load calculations
  • SP jobs that run on multiple SP clients are weighted by the number of clients and distributed as a single group

The Offset in seconds field can also be configured manually in the Schedule section when editing a job. For more information about job configuration, see Job Scheduler.

Distribution Algorithm

Schedule Balancer is deterministic: new run times are calculated algorithmically without random distribution. Therefore, balancing the same set of jobs always produces the same result.

The timeline is divided into fixed-size slots. The analysis horizon is the least common multiple of all job periods, subject to an upper limit. The number of concurrent runs is calculated for each slot. Jobs with irregular schedules are treated as fixed load, and balanceable jobs are placed in slots that are not occupied by them.

For each balanceable job, an offset is selected in the range from 0 to period - 1. A job with offset s starts in slots s, s + period, s + 2 × period, and so on until the end of the horizon. For each possible offset, the algorithm evaluates the busiest of these slots and selects the option with the lowest peak.

Jobs are placed in ascending order of period. Jobs with shorter periods have fewer possible offsets, so these most constrained jobs are placed first while more slots are available. Jobs with longer periods are more flexible and are fitted into the remaining slots. SP jobs are placed as a group with one offset for all clients, while local jobs are placed individually. The load map is updated after each placement, so every subsequent job accounts for slots that are already occupied.

Non-balanceable Jobs

Jobs with irregular schedules do not participate in balancing, and their run times are not changed. However, they are included as load when the new schedule for other jobs is calculated.

Limitations

  • Schedule Balancer considers only Job Scheduler jobs; load from other Smart Monitor components is not included in the analysis
  • Schedule Balancer considers only enabled jobs; disabled jobs are not included in the schedule analysis
  • the minimum chart aggregation interval is 5 minutes