Skip to content

Commit 017031f

Browse files
committed
Added description of command-line arguments for benchmark software
1 parent 6be89d3 commit 017031f

File tree

1 file changed

+35
-4
lines changed

1 file changed

+35
-4
lines changed

aws-setup/documentation/setup.md

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -419,13 +419,15 @@ You can execute this application with the following command:
419419
``` sh
420420
java -Dlog4j.configuration=file:/home/ubuntu/repos/LambdaFS-BenchmarkingUtility/src/main/resources/log4j.properties \
421421
-Dsun.io.serialization.extendedDebugInfo=true -Xmx2g -Xms2g -XX:+UseConcMarkSweepGC -XX:+UnlockDiagnosticVMOptions \
422-
-XX:ParGCCardsPerStrideChunk=4096 -XX:+CMSScavengeBeforeRemark -XX:MaxGCPauseMillis=350 -XX:MaxTenuringThreshold=2 \
423-
-XX:MaxNewSize=2000m -XX:+CMSClassUnloadingEnabled -XX:+ScavengeBeforeFullGC \
422+
-XX:ParGCCardsPerStrideChunk=512 -XX:+CMSScavengeBeforeRemark -XX:MaxGCPauseMillis=350 -XX:MaxTenuringThreshold=2 \
423+
-XX:MaxNewSize=1024m -XX:+CMSClassUnloadingEnabled -XX:+ScavengeBeforeFullGC \
424424
-cp ".:target/HopsFSBenchmark-1.0-jar-with-dependencies.jar:$HADOOP_HOME/share/hadoop/hdfs/lib/*:$HADOOP_HOME/share/hadoop/common/lib/*" \
425425
com.gmail.benrcarver.distributed.InteractiveTest --leader_ip <PRIVATE IPv4 OF VM> --leader_port 8000 --yaml_path <PATH TO>/config.yaml
426426
```
427427
428-
Note that we're setting the JVM heap size to 2GB in the above command via the flags `-Xmx2g -Xms2g`. If you're using a VM with less than 2GB of RAM, then you should adjust this value accordingly. We recommend at least 256-512MB of RAM for basic testing with single file system operations and 1-2GB for small-scale benchmarks. If you are running in `distributed` mode, then we recommend *at least* 2GB, but this should be significantly higher if you're running larger-scale benchmarks and/or using multiple other client VMs (in `distributed` mode).
428+
We're setting the JVM heap size to 2GB in the above command via the flags `-Xmx2g -Xms2g`. If you're using a VM with less than 2GB of RAM, then you should adjust this value accordingly. We're also specifying several other garbage-collection-related JVM arguments in that of `-XX:ParGCCardsPerStrideChunk` and `-XX:MaxNewSize`. If you reduce the JVM heap size (via the `-Xmx` and `-Xms` flags), then you should also adjust these other GC-related flags accordingly.
429+
430+
We recommend at least 256-512MB of RAM for basic testing with single file system operations and 1-2GB for small-scale benchmarks. If you are running in `distributed` mode, then we recommend *at least* 2GB, but this should be significantly higher if you're running larger-scale benchmarks and/or using multiple other client VMs (in `distributed` mode).
429431
430432
### Distributed Mode
431433
@@ -451,4 +453,33 @@ There are several configuration parameters to set:
451453
- `commanderExecutesToo`: Determines whether the experiment driver also hosts actual file system clients that execute file system operations during benchmarks. This is `true` by default; it hasn't been fully tested when set to `false`.
452454
- `namenodeEndpoint`: This is the endpoint of the local NameNode; this is relevant only when using this application with HopsFS (as opposed to λFS, in which case this configuration parameter is ignored). For consistency, we recommend using the private IPv4 address of whatever VM you're using as the "primary client" (i.e., experiment driver) as the basis for the `namenodeEndpoint` parameter. In the example `config.yaml` shown above, this IP is `10.0.0.1`.
453455
454-
For each "follower" (i.e., other machine on which you'd like to run the benchmarking software), you must add an entry to the `followers` list using the format shown above. If deployed on AWS EC2 within a VPC, then the `ip` is the private IPv4 of the EC2 VM. For `user`, specify the OS username that should be used when SSH-ing to the machine. If using our provided EC2 AMIs, then this will be `ubuntu`.
456+
For each "follower" (i.e., other machine on which you'd like to run the benchmarking software), you must add an entry to the `followers` list using the format shown above. If deployed on AWS EC2 within a VPC, then the `ip` is the private IPv4 of the EC2 VM. For `user`, specify the OS username that should be used when SSH-ing to the machine. If using our provided EC2 AMIs, then this will be `ubuntu`.
457+
458+
## Full List of Available Command-Line Arguments
459+
460+
The following is the full list of available command-line arguments for the λFS Benchmarking Utility.
461+
```
462+
-w --worker [no value] [default: false]
463+
If passed/set, then run the application as a "worker", listening to commands provided by a remote leader.
464+
465+
-l --leader_ip [string] [required]
466+
The IP address of the Leader. Only used when this process is designated as a worker.
467+
When running on AWS EC2 within a VPC, this should be the private IPv4 of the leader's VM.
468+
469+
-p --leader_port [int] [required]
470+
The port of the Leader. Only used when this process is designated as a worker.
471+
472+
-n --nondistributed [no value] [default: false]
473+
Run in non-distributed mode, meaning we don't launch any followers.
474+
475+
-f --num_followers [int] [default: -1]
476+
Start only the first 'f' followers listed in the config.
477+
478+
-j --scp_jars [no value] [default: false]
479+
The commander should SCP the JAR files to each follower.
480+
481+
-c --scp_config [no value] [default: false]
482+
The command should SCP the hdfs-site.xml config file to each follower.
483+
484+
-m --manually_launch_followers [no value] [default: false]
485+
```

0 commit comments

Comments
 (0)