Skip to content

v3.1 Usage

Andrey Kurilov edited this page Feb 22, 2017 · 4 revisions

Contents

  1. Environment Requirements
  2. Deployment
  3. Hello World
  4. Running
  5. Results Analysis
    1. Standard Output
    2. Log Files
    3. Items List Files
  6. Docker
    1. Get an image
    2. Run standalone
    3. Run the storage driver service
    4. Run the controller
    5. Run the storage mock
  7. Web GUI

Environment Requirements

  • JRE 8+
  • OS open files limit is at least a bit higher than specified concurrency level
  • Few gigabytes of free memory. High-load tests may allocate up to 1-2 GB of the memory depending on the scenario.
  • (Remote Storage) Connectivity with the endpoint nodes via the ports used
  • (Distributed Mode) Connectivity with the load servers via port #1099

Deployment

  1. Download the latest Mongoose tar file
  2. Copy the tar file to a proper directory and unpack the file:
tar xvf mongoose-<VERSION>.tgz

This command extracts the contents of the distribution into the directory ./mongoose- which will contain several directories and files. One of the files must be mongoose.jar.

Note:

In case of the distributed mode Mongoose should be also deployed to the driver hosts. Each of Mongoose driver serivces should be started using the following command:

java -jar mongoose-/mongoose-storage-driver-service.jar


# Hello World

An user can try Mongoose without a real storage. Mongoose distribution contains a storage mock implementation for the demo/testing purposes.

Start the web storage mock first:
```bash
java -jar <MONGOOSE_DIR>/mongoose-storage-mock.jar

Then open another console and start Mongoose itself:

java -jar <MONGOOSE_DIR>/mongoose.jar

The line starts Mongoose with default scenario and the default configuration. By default Mongoose writes using Amazon S3 API to storage with IP address 127.0.0.1 (local host). Storage mock is already there to store the new objects.

Now you can switch between the two consoles to see how Mongoose regularly reports about objects created and the storage mock regularly reports about objects stored.

Running

The following line contains a typical command that starts Mongoose run to create 100,000 data items of 8KB size:

 java -jar <MONGOOSE_DIR>/mongoose.jar --storage-node-addrs=10.64.84.<X>,10.64.84.<Y>,10.64.84.<Z> --load-limit-count=100000 --item-data-size=8KB --storage-auth-id=wuser1@SANITY.LOCAL --storage-auth-secret=A5JKVKuSHp5Kme2qcMFlvMqEKbN+QBNF0tRuFleT

Where:

  • --storage-node-addrs - the list of storage node IP addresses
  • --load-limit-count - the number of data items to create
  • --item-data-size - the size data items to create
  • --storage-auth-id - "user" authentication identifier
  • --storage-auth-secret - "user" authentication secret key

Note:

  • If no configuration properties are set in the command line the default configuration is used.
  • The default configuration is located in <MONGOOSE_DIR>config/defaults.json path.
  • If you're running the tool against ECS, use its provision environment to obtain the credentials and other information like bucket, subtenant, container, etc.
  • Please keep in mind that high load require a lot of system resources such as open file descriptors and Java heap memory. It may be necessary to specify the resource limits manually:

ulimit -n 1048576


# Results Analysis

See [[Mongoose Output|v3.1.0 Output]] section for details.

## Items List Files

The items processed during the test may be stored in the output file for a further reuse.
For example, this output file may be used as input file to read the items written before.
To specify the output file the CLI option "--item-output-file=<PATH>" should be used:
```bash
java -jar <MONGOOSE_DIR>/mongoose.jar --item-output-file=items.csv [<OTHER_CLI_OPTIONS>]

To use the item list file the CLI option "--item-input-file=" should be used:

java -jar <MONGOOSE_DIR>/mongoose.jar --item-output-file=items.csv --load-type=read [<OTHER_CLI_OPTIONS>]

Docker

Get an image

To get the latest stable version:

docker pull emcmongoose/mongoose

Otherwise, get the specific version:

docker pull emcmongoose/mongoose:3.0.3

Run standalone

docker run --net=host emcmongoose/mongoose java -jar /opt/mongoose/mongoose.jar <ARGS>

Note:

In new versions of Docker like 1.12.x the option "--network host" instead of "--net=host" should be used

Run the storage driver service

docker run --net=host --expose 1099 emcmongoose/mongoose java -jar /opt/mongoose/mongoose-storage-driver-service.jar

Run the controller

docker run --net=host emcmongoose/mongoose java -jar /opt/mongoose/mongoose.jar --storage-driver-remote --storage-driver-addrs=<ADDR1,ADDR2,...> <ARGS>

Run the storage mock

docker run --net=host --expose 9020-9024 emcmongoose/mongoose java -jar /opt/mongoose/mongoose-storage-mock.jar <ARGS>

Web GUI

TODO

Clone this wiki locally