Sign inSign up

akurilov/mongoose

By akurilov

•Updated almost 10 years ago

Deprecated. Use the "emcmongoose/mongoose" repo instead this.

Image
0

10K+

akurilov/mongoose repository overview

⁠Mongoose

master downloads release Docker Pulls

⁠Mongoose

⁠Description

Mongoose is a storage performance testing tool.

It is designed to be used for:

Mongoose is able to sustain millions of concurrent connections and millions of operations per second.

Basically, Mongoose may be started very simply:

java -jar mongoose.jar

⁠Features

⁠Core Functionality
  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.

⁠Other
  1. Deployment using Docker⁠
  2. Storage Mock⁠
  3. Web GUI⁠

⁠Documentation

Mongoose v4.0⁠

Mongoose v3.5⁠

Mongoose v3.4⁠

Mongoose v3.3⁠

Mongoose v3.1⁠

Mongoose v3.0⁠

Mongoose v2.x.x⁠

Mongoose v1.x.x⁠

Tag summary

Content type

Image

Digest

Size

255.1 MB

Last updated

almost 10 years ago

docker pull akurilov/mongoose:travis-343