-
Notifications
You must be signed in to change notification settings - Fork 10
v3.1 Usage
- 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
- Download the latest Mongoose tar file
- 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.
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:
# 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>]
To get the latest stable version:
docker pull emcmongoose/mongoose
Otherwise, get the specific version:
docker pull emcmongoose/mongoose:3.0.3
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
docker run --net=host --expose 1099 emcmongoose/mongoose java -jar /opt/mongoose/mongoose-storage-driver-service.jar
docker run --net=host emcmongoose/mongoose java -jar /opt/mongoose/mongoose.jar --storage-driver-remote --storage-driver-addrs=<ADDR1,ADDR2,...> <ARGS>
docker run --net=host --expose 9020-9024 emcmongoose/mongoose java -jar /opt/mongoose/mongoose-storage-mock.jar <ARGS>
TODO
- Overview
- Deployment
- User Guide
- Troubleshooting
- Reference