-
Notifications
You must be signed in to change notification settings - Fork 10
v3.3 Configuration
All the configuration values have the default values which may be seen
in the file <MONGOOSE_DIR>/config/defaults.json
To configure the run an user should use the corresponding CLI arguments to override the default values. A CLI argument is parsed as a JSON path:
--item-data-size=100KB
is parsed to point to the following JSON node:
"item" : {
"data" : {
"size" : "100KB"
}
}
Name | Type | Default Value | Description |
---|---|---|---|
item-data-content-file | Path | null | The source file for the content generation |
item-data-content-seed | String | 7a42d9c483244167 | The initial value for the random data generation |
item-data-content-ringSize | Fixed Size | 4MB | The size of the content source ring buffer |
item-data-ranges-fixed | Byte Range list | null | The fixed byte ranges to update or read (depends on the specified load type) |
item-data-ranges-random | Integer >= 0 or Byte Range | 0 | The count of the random ranges to update or read |
item-data-ranges-threshold | Size | 0 | The size threshold to enable multipart upload if supported by the configured storage driver |
item-data-size | Size | 1MB | The size of the data items to process. Doesn't have any effect if item.type=container |
item-data-verify | Flag | false | Specifies whether to verify the content while reading the data items or not. Doesn't have any effect if load-type != read |
item-input-file | Path | null | The source file for the items to process. If null the behavior depends on the load type. |
item-input-path | String | null | The source path which may be used as items input if not "item-input-file" is specified. Also used for the copy mode as the path containing the items to be copied into the output path. |
item-naming-type | Enum | random | Specifies the new items naming order. Has effect only in the case of create load. "asc": the new items are named in the ascending order, "desc": the new items are named in the descending order, "random": the new items are named randomly |
item-naming-prefix | String | null | The name prefix for the processed items. A correct value is neccessary to pass the content verification in the case of read load. |
item-naming-radix | Integer >= 2 | 36 | The radix for the item ids. May be in the range of 2..36. A correct value is neccessary to pass the content verification in the case of read load. |
item-naming-offset | Integer >= 0 | 0 | The start id for the new item ids |
item-naming-length | Integer > 0 | 13 | The name length for the new items. Has effect only in the case of create (if not partial) load |
item-output-delay | Integer >= 0 | 0 | The minimum delay between the subsequent I/O operations for each item (chain load). 0 means no delay. |
item-output-file | Path | null | Specified the target file for the items processed successfully. If null the items info is not saved. |
item-output-path | String | null | The target path. Null (default) value leads to path name generation and pre-creation. |
item-type | Enum | data | The type of the item to use, the possible values are: "data", "container". In case of filesystem "data" means files and "container" means directories |
load-circular | Flag | false | Specifies whether to process the items multiple times (again and again) or not |
load-generator-shuffle | Flag | false | Defines whether to shuffle or not the items got from the item input, what should make the order of the I/O tasks execution randomized |
load-queue-size | Integer >= 1 | 1000000 | The maximum number of the unique items processed in the case of the circular load |
load-type | Enum | create | The operation to process the items, may be "create", "update", "read" or "delete" |
storage-auth-file | Path | null | The path to a credentials list file, containing the lines of comma-separated user ids and secret keys |
storage-auth-uid | String | null | The authentication identifier |
storage-auth-secret | String | null | The authentication secret |
storage-auth-token | String | null | S3: no effect, Atmos: subtenant, Swift: token |
storage-driver-addrs | List of strings | 127.0.0.1 | Distributed mode: the list of the storage drivers IPs or hostnames, may include port numbers to override the default port number value |
storage-driver-concurrency | Integer > 0 | 1 | The concurrency level. In case of filesystem the number of open files at any moment. In case of HTTP the number of the active connections at any moment. |
storage-driver-impl | List | The list of the registered storage driver implementations | |
storage-driver-io-workers | Integer | 0 | The desired count of I/O threads per storage driver. Value < 1 means that the count will be equal to the CPU cores count. |
storage-driver-port | Integer > 0 | 1099 | Distributed mode: the common port number to start the storage driver services |
storage-driver-remote | Flag | false | Distributed mode: the flag to enable using remote storage drivers |
storage-driver-type | String | s3 | The identifier pointing to the one of the registered storage driver implementations to use |
storage-mock-capacity | Integer > 0 | 1000000 | WS mock: the maximum count of the items to be stored in the storage mock which are may be to read back |
storage-mock-container-capacity | Integer > 0 | 1000000 | WS mock: the maximum count of the items to be stored in the container which are may be to read back |
storage-mock-countLimit | Integer > 0 | 1000000 | WS mock: the maximum count of the containers to be stored in the storage mock |
storage-mock-node | Flag | false | Start the storage mock cluster node with local network auto discovery |
storage-net-timeoutMilliSec | Integer >= 0 | 1000000 | The socket timeout |
storage-net-reuseAddr | Flag | true | |
storage-net-keepAlive | Flag | true | |
storage-net-tcpNoDelay | Flag | true | |
storage-net-linger | Integer >= 0 | 0 | |
storage-net-bindBacklogSize | Integer >= 0 | 0 | |
storage-net-interestOpQueued | Flag | false | |
storage-net-selectInterval | Integer > 0 | 100 | |
storage-net-ssl | Flag | false | The flag to enable the load through SSL/TLS. Currently only HTTPS implementation is available. Have no effect if configured storage type is filesystem. |
storage-net-http-fsAccess | Flag | false | Specifies whether filesystem access is enabled or not in the case of S3 or Atmos API |
storage-net-http-headers | Map | { "Connection" : "keep-alive", "User-Agent" : "mongoose/3.0.0" } | Custom HTTP headers section. An user may place here a key-value pair which will be used as HTTP header. |
storage-net-http-namespace | String | null | The HTTP storage namespace. WARNING: the default value (null) will not work in the case of Swift API |
storage-net-http-versioning | Flag | false | Specifies whether the versioning storage feature is used or not |
storage-net-node-addrs | List of strings | 127.0.0.1 | The list of the storage node IPs or hostnames to use for HTTP load. May include port numbers. |
storage-net-node-port | Integer > 0 | 9020 | The common port number to access the storage nodes, may be overriden adding the port number to the storage-driver-addrs, for example: "127.0.0.1:9020,127.0.0.1:9022,..." |
test-scenario-file | Path | null | The default JSON scenario to run, null means invoking the default.json scenario bundled into the distribution |
test-step-limit-count | Integer >= 0 | 0 | The maximum number of the items to process for any load step. 0 means infinite |
test-step-limit-rate | Float >= 0 | 0 | The maximum number of the items to process per second (throughput limit). 0 means no rate limit. |
test-step-limit-size | Fixed size >= 0 | 0 | The maximum size of the data items to process. 0 means no size limit. |
test-step-limit-time | Time >= 0 | 0 | The maximum time to perform a load step. 0 means no time limit |
test-step-metrics-period | Time | 10s | The time period for the load step's metrics console output. 0 means to not to output the metrics at all |
test-step-metrics-threshold | 0 <= Float <= 1 | 0 | The concurrency threshold to enable intermediate statistics calculation |
test-step-name | String | null | The load step name for this launch. Generated automatically if not specified (null). Specifies also the log directory path: log/<JOB_NAME>/ |
test-step-precondition | Flag | false | Enabling precondition mode disables the metrics output for a load step to the perf*.csv log files |
version | String | next | The Mongoose version |
The configuration parameters supporting the time type:
- test-step-limit-time
- test-step-metrics-period
Value | Effect |
---|---|
0 | Infinite/not set |
-1 | Invalid value |
1 | 1 second |
"1s" | 1 second |
"2m" | 2 minutes |
"3h" | 3 hours |
"4d" | 4 days |
"5w" | Invalid value |
"6M" | Invalid value |
"7y" | Invalid value |
The configuration parameters supporting the time type:
- item-data-content-ringSize
- item-data-size
- test-step-limit-size
Value | Effect |
---|---|
-1 | Invalid Value |
0 | 0 bytes (Infinity in case of load.limit.size) |
1 | 1 bytes |
1024 | 1024 bytes or 1KB |
"0B" | 0 bytes (Infinity in case of load.limit.size) |
"1024B" | 1024 bytes or 1KB |
"1KB" | 1024 bytes or 1KB |
"2MB" | 2MB |
"6EB" | 6EB (exobytes) |
"7YB" | Invalid Value |
The configuration value is usually fixed. However, it's possible to define a dynamic value changing in the runtime. Each next value may be taken in a synchronous either asynchronous way.
The next value is recalculated for each take attempt. The synchronous input is useful if the recalculation complexity is low either different value on each take attempt is strictly required.
The next value is being recalculated in the background continuously. Taking the value frequently is expected to yield a sequence of the same value. The asynchronous input is most useful when the recalculation cost is relatively high and the values consumer doesn't require different value each time.
The common pattern syntax (excluding path format pattern) has the following general layout:
%<TYPE_LETTER>(<SEED>){<FORMAT>}[<RANGE>]
Where:
-
TYPE_LETTER
defines the value type, may be "d", "f", "D" ("p" has a bit different syntax, see below) -
SEED
is optional, the initial value for the random number generator used to obtain each next value -
FORMAT
is optional, the pattern to convert the value to a string -
RANGE
is optional, describes the value range as<FROM>-<TO>
(TO
value is exclusive)
For the number values (configured with "d" or "f") the format may be described using the Java's DecimalFormat syntax: https://docs.oracle.com/javase/8/docs/api/java/text/DecimalFormat.html
Generates random 64-bit signed integer value in the specified range (optional).
Examples:
-
%d
: any integer value fromjava.lang.Long.MIN_VALUE
tojava.lang.Long.MAX_VALUE
-
%d{##########}
: as above, but with padding with leading zeroes to make the result string length = 10 -
%d[0-100]
: any integer value from 0 to 99 -
%d{###}[0-100]
: any integer value from 00 to 99 -
%d(123456789){###}[0-100]
: any integer value from 00 to 99, internal PRNG will be initialized using the specified seed
Examples:
-
%f
: any floating point value from 0 to 1 (exclusive) -
%f[1.23-4.56]
: any floating point value from 1.23 (inclusive) to 4.56 (exclusive) -
%f{#.#######}
: any floating point value formatted using the specified format (3.1415926 for example) -
%f{#.##}[2.71828182846-3.1415926]
: any floating point value from e to pi (exclusive)
Generates random date in the specified format (mandatory) in the specified range (optional).
Examples:
-
%D
: any date time between Unix zero date time and now -
%D{yyyy-MM-dd'T'HH:mm:ss}[2013/10/30-2017/02/09]
: any date time between the specified dates -
%D{yyyy-MM-dd'T'HH:mm:ss}
: any date time between Unix zero date time and now in the specified format -
%D{yyyy-MM-dd'T'HH:mm:ss}[2013/10/30-2017/02/09]
: any date time between the specified dates in the specified format
Note:
- The format may be described using the Java's SimpleDateFormat syntax: https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html
- Range boundary dates should be in
yyyy/MM/dd
oryyyy/MM/dd'T'HH:mm:ss
format
Generates the path hierarchy elements using specified hierarchy "width" and "depth".
The synchronous implementation is only available.
Also, has different layout:
%p{<WIDTH>;<DEPTH>}
or %p(<SEED>){<WIDTH>;<DEPTH>}
- item-output-path
- storage-auth-uid
- storage-net-http-headers-*
Alias | Target Parameter | Default Value |
---|---|---|
load-threads | storage-driver-concurrency | * |
run-id | test-step-name | * |
noop | load-type | noop |
create | load-type | create |
read | load-type | read |
update | load-type | update |
delete | load-type | delete |
Alias | Target Parameter | Default Value |
---|---|---|
atmos-subtenant | storage-auth-token | * |
Alias | Target Parameter | Default Value |
---|---|---|
s3-input-bucket | item-input-path | * |
s3-output-bucket | item-output-path | * |
Alias | Target Parameter | Default Value |
---|---|---|
swift-input-container | item-input-path | * |
swift-input-container | item-output-path | * |
- Overview
- Deployment
- User Guide
- Troubleshooting
- Reference