MicroScheduler Feature Overview

The Multi-Core Problem

Core counts continue to increase, and so will the number of concurrent jobs competing for IO, CPU, Memory, and License resources. As more jobs are packed onto a single machine it becomes impossible to enforce resource reservations and ensure consistent and dependable execution times. When a job goes beyond its fair share of CPU or IO resources it can negatively impact every other job on that system. This pattern of increasing density will ensure that this problem occurs more often, and when it does, its performance impact will be greater as well. When these resources are stressed they can go down causing expensive downtime for an entire cluster.

Current monitoring solutions can only detect problems after they happen, and even then they cannot pinpoint the specific job causing the problem because they only understand the system as a whole. Solutions are lacking as well, as the most common answer to these problems is to throw more hardware at it, or through trial and error separate the problem workloads and isolate them. Because microScheduler is designed to work at the process level, we can not only determine the offender, but take appropriate action to resolve the problem before it happens.

The Multi-Core Solution: MicroScheduler

MicroScheduler gives you control over your resource usage from within the application at the process level. Detection and monitoring are done in real-time, and because of our location within each and every process we can manage resource utilization before a problem can ever occur.

MicroScheduler monitors resource demand, provides resource separation and balancing between different workloads, enforces changing workload priorities, removes IO and CPU bottlenecks, enables dynamic scheduling through job suspension, and provides in-depth job specific resource utilization statistics. microScheduler is designed as an enhancement to existing workload managers, extending their control to provide fine grained resource management at the system level. microScheduler manages system and cluster level resource requirements and in real-time balances consumption at the job, process, and thread level. microScheduler consists of four main modules:

Available Modules

MicroScheduler Modules