Mesos task load simulator framework for (cluster and Mesos) performance analysis
A benchmarking framework for Mesos.
This is work in progress in its early stages. Expect bugs and missing features.
The Mesosaurus framework creates work loads that can be configured to simulate the behavior of other frameworks on a Mesos cluster.
We intend to come up with configurations that approximate Marathon, Chronos, Hadoop, MPI, Storm, Spark, and many others. By running multiple instances of Mesosaurus concurrently, it should be possible to simulate large production systems comprising of several frameworks competing for resources. It is our goal that Metrics from such runs can then be used for cluster and Mesos core performance analysis.
TODO
Check out the latest source code from its git repository:
git clone https://github.com/mesosphere/mesosaurus.git
Build the task executor, which is written in C++.
cd mesosaurus/task
make
Download and install libraries that Mesosaurus depends on and translate the Scala source code to bytecode:
cd mesosaurus/
sbt compile
If you have a Mesos master running on your local machine,
check there is entry in /etc/hosts:
<real machine ip> <hostname>
then, you can simply execute Mesosaurus with default values for all settings:
cd mesosaurus/
sbt run
As a more complex example, you can run 10 tasks that take on average 1 second and arrive on average every 2 seconds on a Mesos installation with its master at a specified IP address and port:
sbt "run -tasks 10 -duration 1000 -arrival 2000 -master 127.0.0.1:5050"
sbt eclipse
This creates a file with the name ".project" in the Mesosaurus directory.Execute the Mesosaurus program just to peruse a list of its available command line options:
sbt "run -h"
We try to follow the usual Scala Style Guide, but no TAB character is allowed anywhere in source code.