Mongoose/Open Source Project

Mongoose

master downloads release Docker Pulls Mongoose is a storage performance testing tool. It is designed to be used for: * Load Testing * Stress Testing * Soak/Longevity/Endurance Testing * Volume Testing * Smoke/Sanity Testing Mongoose is able to sustain millions of concurrent connections and millions of operations per second.

Getting Started

Please refer to the quickstart page for the details.

Documentation

Mongoose v3.6 Mongoose v3.5 Mongoose v3.4 Mongoose v3.3 Mongoose v3.1 Mongoose v3.0 Mongoose v2.x.x Mongoose v1.x.x

Key Features

  1. Configuration Mongoose has rich configuration subsystem supporting the parametrization.

  2. Items Item is the unit of the load progress and metrics accounting. An item may be a file, cloud storage data object, some kind of token or something else. The data items describe the data to use to perform a load operation (some fixed or random size, content source, etc). Mongoose may persist the items used in a run/job info to a specified output which later may be used as items input for another run/job.

  3. Content Different data may be used to perform a load on a storage. By default Mongoose uses random, uncompressible data. An user may supply custom data input file instead.

  4. Concurrency In contradiction to all other comparable performance testing software, Mongoose doesn't use the threads to set up a specified concurrency level. This allows to use unlimited concurrency levels easily.

  5. Recycle Mode The so called recycling feature allows to use the limited amount of items for an unlimited test run/load job by reusing these items again and again (circularly).

  6. Test Steps A test step is an unit of a test run with its own configuration and metrics reporting. An user is able to configure and identify a test step and limit it using one of available constraints.

  7. Metrics Reporting The metrics reported by Mongoose are designed to be most useful for performance analysis. The following metrics are accounted:

    • Counts: items, bytes, elapsed and effective times.
    • Rates: items per second and bytes per second.
    • Timing distributions for operation durations and network latencies.
    There are the metrics outputs performed periodically while a load job is running and total ones when a load job is finished. Also, it's possible to obtain the highest-precision metrics (for each operation).

  8. Load Types The CRUD notation is used to describe the load operations. However, there are some extensions:

    One of the most interesting things is a data reentrancy. This allows to validate the data read back from the storage successfully even after the data items have been randomly updated multiple times before.

  9. Scenarios Mongoose is able to run the tests described with scenario files in the JSON format. Scenario syntax allow to:

  10. Storage Driver Mongoose is able to work in the distributed mode what allows to scale out the load performed on a storage. In the distributed mode there's a controller which aggregates the results from the several remote storage drivers. Storage drivers perform the actual load on the storage. Mongoose supports different storage types: a filesystem or a cloud storage. Currently, the following cloud storage APIs are supported:

    It's possible to implement a custom storage driver to extend the storages support.

Authors

  • Andrey Kurilov

Acknowledgements

  • Gennady Eremeev
  • Ilya Kisliakovsky
  • Kirill Gusakov
  • Mikhail Danilov
  • Olga Zhavzharova

Information

From the {code} Blog

  • The Importance of Open Source Communities

    The Importance of Open Source Communities Have you ever wanted to sit down with community leaders from the open source community, and chat with them about what they look for when growing ambassador groups ...
    November 16, 2017
  • Ocopea: Application Copies for Kubernetes and Cloud Foundry

    Introducing DevHigh5 Project Ocopea: Application Copies for Kubernetes and Cloud Foundry By Amit Lieberman and Vijay Tirumalai A new DevHigh5 open source project, Ocopea, (pronounced Oh Copy!), introduces application copies for Kubernetes and Cloud Foundry ...
    November 16, 2017
  • Analysis of the CSI Spec

    The Container Storage Interface (CSI) is making steady progress on mapping out how it will eventually look. If this is the first time you’ve heard about CSI, we would recommend that you read The ...
    November 3, 2017
More related posts on the {code} Blog

Mongoose

master downloads release Docker Pulls Mongoose is a storage performance testing tool. It is designed to be used for: * Load Testing * Stress Testing * Soak/Longevity/Endurance Testing * Volume Testing * Smoke/Sanity Testing Mongoose is able to sustain millions of concurrent connections and millions of operations per second.

Getting Started

Please refer to the quickstart page for the details.

Documentation

Mongoose v3.6 Mongoose v3.5 Mongoose v3.4 Mongoose v3.3 Mongoose v3.1 Mongoose v3.0 Mongoose v2.x.x Mongoose v1.x.x

Key Features

  1. Configuration Mongoose has rich configuration subsystem supporting the parametrization.

  2. Items Item is the unit of the load progress and metrics accounting. An item may be a file, cloud storage data object, some kind of token or something else. The data items describe the data to use to perform a load operation (some fixed or random size, content source, etc). Mongoose may persist the items used in a run/job info to a specified output which later may be used as items input for another run/job.

  3. Content Different data may be used to perform a load on a storage. By default Mongoose uses random, uncompressible data. An user may supply custom data input file instead.

  4. Concurrency In contradiction to all other comparable performance testing software, Mongoose doesn't use the threads to set up a specified concurrency level. This allows to use unlimited concurrency levels easily.

  5. Recycle Mode The so called recycling feature allows to use the limited amount of items for an unlimited test run/load job by reusing these items again and again (circularly).

  6. Test Steps A test step is an unit of a test run with its own configuration and metrics reporting. An user is able to configure and identify a test step and limit it using one of available constraints.

  7. Metrics Reporting The metrics reported by Mongoose are designed to be most useful for performance analysis. The following metrics are accounted:

    • Counts: items, bytes, elapsed and effective times.
    • Rates: items per second and bytes per second.
    • Timing distributions for operation durations and network latencies.
    There are the metrics outputs performed periodically while a load job is running and total ones when a load job is finished. Also, it's possible to obtain the highest-precision metrics (for each operation).

  8. Load Types The CRUD notation is used to describe the load operations. However, there are some extensions:

    One of the most interesting things is a data reentrancy. This allows to validate the data read back from the storage successfully even after the data items have been randomly updated multiple times before.

  9. Scenarios Mongoose is able to run the tests described with scenario files in the JSON format. Scenario syntax allow to:

  10. Storage Driver Mongoose is able to work in the distributed mode what allows to scale out the load performed on a storage. In the distributed mode there's a controller which aggregates the results from the several remote storage drivers. Storage drivers perform the actual load on the storage. Mongoose supports different storage types: a filesystem or a cloud storage. Currently, the following cloud storage APIs are supported:

    It's possible to implement a custom storage driver to extend the storages support.

Authors

  • Andrey Kurilov

Acknowledgements

  • Gennady Eremeev
  • Ilya Kisliakovsky
  • Kirill Gusakov
  • Mikhail Danilov
  • Olga Zhavzharova

From the {code} Blog

  • The Importance of Open Source Communities

    The Importance of Open Source Communities Have you ever wanted to sit down with community leaders from the open source community, and chat with them about what they look for when growing ambassador groups ...
    November 16, 2017
  • Ocopea: Application Copies for Kubernetes and Cloud Foundry

    Introducing DevHigh5 Project Ocopea: Application Copies for Kubernetes and Cloud Foundry By Amit Lieberman and Vijay Tirumalai A new DevHigh5 open source project, Ocopea, (pronounced Oh Copy!), introduces application copies for Kubernetes and Cloud Foundry ...
    November 16, 2017
  • Analysis of the CSI Spec

    The Container Storage Interface (CSI) is making steady progress on mapping out how it will eventually look. If this is the first time you’ve heard about CSI, we would recommend that you read The ...
    November 3, 2017
More related posts on the {code} Blog

From the {code} Blog

  • The Importance of Open Source Communities

    The Importance of Open Source Communities Have you ever wanted to sit down with community leaders from the open source community, and chat with them about what they look for when growing ambassador groups ...
    November 16, 2017
  • Ocopea: Application Copies for Kubernetes and Cloud Foundry

    Introducing DevHigh5 Project Ocopea: Application Copies for Kubernetes and Cloud Foundry By Amit Lieberman and Vijay Tirumalai A new DevHigh5 open source project, Ocopea, (pronounced Oh Copy!), introduces application copies for Kubernetes and Cloud Foundry ...
    November 16, 2017
  • Analysis of the CSI Spec

    The Container Storage Interface (CSI) is making steady progress on mapping out how it will eventually look. If this is the first time you’ve heard about CSI, we would recommend that you read The ...
    November 3, 2017
More related posts on the {code} Blog