An open API service indexing awesome lists of open source software.

https://github.com/distributedsystemsgroup/cluster-scheduler-simulator


https://github.com/distributedsystemsgroup/cluster-scheduler-simulator

Last synced: about 1 year ago
JSON representation

Awesome Lists containing this project

README

          

# Cluster scheduler simulator overview

This simulator is forked from Cluster-Scheduler-Simulator by [Google](https://github.com/google/cluster-scheduler-simulator) and contains the features introduces by [Liang-Chi Hsieh](https://github.com/viirya) in his [fork](https://github.com/viirya/cluster-scheduler-simulator).

This version of the simulator has gone trough a lot of fixes, refactoring and improvements. The original document can be located [here](README_GOOGLE.md). We recommend to read it before using this version.

## Downloading, building, and running

To download this project you can clone this Git repository. Once cloned there are several ways to run it:

1. follow instructions in the same section [here](README_GOOGLE.md)

2. if you have a Swarm or Docker deployment at hand, it is possible to launch it with the following command:

$ bash bin/launch_on_container.sh

If you use option 2. make sure to update the variables inside the above script and to deploy the Docker Image [here](docker).

## Simulators implemented

Currently the scheduler architectures supported are:

1. Monolithic by [Google](https://github.com/google/cluster-scheduler-simulator/blob/master/src/main/scala/MonolithicSimulation.scala)
2. Mesos by [Google](https://github.com/google/cluster-scheduler-simulator/blob/master/src/main/scala/MesosSimulation.scala)
3. Omega by [Google](https://github.com/google/cluster-scheduler-simulator/blob/master/src/main/scala/OmegaSimulation.scala)
4. Spark by [Liang-Chi Hsieh](https://github.com/viirya/cluster-scheduler-simulator/blob/spark_support/src/main/scala/SparkSimulation.scala)
5. Zoe by [Pace Francesco](https://github.com/Nosfe)

Be aware that the scheduler simulators original code might be different after the refactoring and improvements, but the logic is the same.

## Metrics

### Plotted

Below there is a table that summarize the metric plotted for each scheduler simulator.

| | Monolithic | Mesos | Omega | Spark | Zoe |
|:-:|:-:|:-:|:-:|:-:|:-:|
| Avg Cell CPU Utilization | ✔ | ✔ | ✔ | | ✔ |
| Avg Cell RAM Utilization | ✔ | ✔ | ✔ | | ✔ |
| Avg Cell CPU Locked | ✔ | ✔ | ✔ | | ✔ |
| Avg Cell RAM Locked | ✔ | ✔ | ✔ | | ✔ |
| Busy Time Fraction | ✔ | ✔ | ✔ | | ✔ |
| Conflict Fraction | | | ✔ | | |
| Daily Busy Fraction Median | ✔ | ✔ | ✔ | | ✔ |
| Daily Conflict Fraction Median | | | ✔ | | |
| Failed Task Allocation | ✔ | ✔ | ✔ | | ✔ |
| Jobs Unscheduled | ✔ | ✔ | ✔ | | ✔ |
| Jobs Scheduled | ✔ | ✔ | ✔ | | ✔ |
| Jobs Fully Scheduled | ✔ | ✔ | ✔ | | ✔ |
| Number Jobs Timed Out | ✔ | ✔ | ✔ | | ✔ |
| Number Pending Jobs at the End | ✔ | ✔ | ✔ | | ✔ |
| Retried Transactions | | | ✔ | | |
| Task Conflict Fraction | | | ✔ | | |
| Wait Time Before First Task | ✔ | ✔ | ✔ | | ✔ |
| Wait Time Before All Tasks | ✔ | ✔ | ✔ | | ✔ |
| Avg Job Execution Time | ✔ | ✔ | ✔ | | ✔ |
| Avg Job Completion Time | ✔ | ✔ | ✔ | | ✔ |