64 lines
2.6 KiB
Plaintext
64 lines
2.6 KiB
Plaintext
To run the system test we need to create processing containers that we can
|
|
spawn tasks, called Instances, in. (how is that for a dangling preposition!?!)
|
|
Start up InstanceContainers first. Then run the system test. The system test
|
|
finds the InstanceContainers and directs them through ZooKeeper, so you are
|
|
going to need an instance of ZooKeeper running that they can all access.
|
|
The easiest way to do all of this is to use the zookeeper fat jar.
|
|
|
|
Steps to run system test
|
|
------------------------
|
|
1) build and transfer the fatjar from the `zookeeper-contrib/zookeeper-contrib-fatjar/target`
|
|
directory to all systems participating in the test
|
|
|
|
Command to build fatjar without executing the tests:
|
|
|
|
`mvn clean install -P fatjar -DskipTests`
|
|
|
|
2) run a zookeeper standalone instance (cluster is ok too)
|
|
|
|
e.g. java -jar zookeeper-<version>-fatjar.jar server <zoo.cfg>
|
|
|
|
Note: you must provide zoo.cfg, see sample in conf directory
|
|
|
|
3) on each host start the system test container
|
|
|
|
e.g. java -jar zookeeper-<version>-fatjar.jar ic <name> <zkHostPort> /sysTest
|
|
|
|
name : name of the test container - must be unique
|
|
typically it's a good idea to name after the host to aid debugging
|
|
|
|
zkHostPort : the host:port of the server from step 2)
|
|
|
|
4) initiate the system test using the fatjar:
|
|
|
|
java -jar build/contrib/fatjar/zookeeper-<version>-fatjar.jar systest org.apache.zookeeper.test.system.SimpleSysTest
|
|
|
|
by default it will access the zk server started in 2) on localhost:2181
|
|
|
|
or you can specify a remote host:port using
|
|
-DsysTest.zkHostPort=<host>:<port>,<host>:<port>,...
|
|
|
|
java -DsysTest.zkHostPort=hostA:2181 -jar build/contrib/fatjar/zookeeper-<version>-fatjar.jar systest org.apache.zookeeper.test.system.SimpleSysTest
|
|
|
|
where hostA is running the zk server started in step 2) above
|
|
|
|
InstanceContainers can also be used to run a the saturation benchmark. The
|
|
first two steps are the same as the system test. Step 3 is almost the same:
|
|
|
|
3) start the InstanceContainer on each host:
|
|
|
|
e.g. java -jar zookeeper-<version>-fatjar.jar ic <name> <zkHostPort> <prefix>
|
|
|
|
note prefix can be /sysTest or any other path. If you do use /sysTest, make
|
|
sure the system test isn't running when you run the benchmark.
|
|
|
|
4) run GenerateLoad using the following
|
|
|
|
java -jar build/contrib/fatjar/zookeeper-<version>-fatjar.jar generateLoad <zkHostPort> <prefix> #servers #clients
|
|
|
|
Once GenerateLoad is started, it will read commands from stdin. Usually
|
|
the only command you need to know is "percentage" which sets the percentage
|
|
of writes to use in the requests. Once a percentage is set, the benchmark
|
|
will start. "percentage 0" will cause only reads to be issued and
|
|
"percentage 100" will cause only writes to be issued.
|