Job Engine jobs are prioritized on a scale of one to ten, with a lower value signifying a higher priority. This prioritization is similar in concept to the UNIX scheduling utility nice.
Higher-priority jobs always cause lower-priority jobs to be paused. If a job is paused, it is returned to the back of the Job Engine priority queue. When the job reaches the front of the priority queue again, it resumes from where it left off. If the system schedules two jobs of the same type and priority level to run simultaneously, the job that was queued first runs first.
Priority takes effect when two or more queued jobs belong to the same exclusion set, or when, if exclusion sets are not a factor, four or more jobs are queued. The fourth queued job may be paused if it has a lower priority than the three other running jobs.
In contrast to priority, job impact policy only applies once a job is running and determines the amount of resources a job can use across the cluster. As such, a job’s priority and impact policy are orthogonal to one another.
The FlexProtect, FlexProtectLIN, and IntegrityScan jobs have the highest Job Engine priority level of 1, by default. Of these jobs, the FlexProtect jobs, having the core role of reprotecting data, are the most important.
All Job Engine job priorities are configurable by the cluster administrator. The default priority settings are strongly recommended, particularly for the highest-priority jobs.
Figure 5. Job impact and priority configuration in the OneFS WebUI
In OneFS 8.2 and later, jobs are no longer paused if there is only one temporarily unavailable device in each disk pool.