[
https://issues.apache.org/jira/browse/ZOOKEEPER-2023?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14124810#comment-14124810
]
Alexander Shraer commented on ZOOKEEPER-2023:
---------------------------------------------
Kfir, I like what this patch is adding - flexibility of defining different
types of clients, measuring latency under load, and the new reporting format.
However, I'd rather we use some existing histogram library if possible and
avoid pre-defining bucket boundaries, doing binary search to find the right
bucket to increment, and throwing away unexpectedly high latencies (if I
understood correctly).
this is perhaps a question for [~phunt] or [~fpj] - instead of implementing
histograms as part of this patch,
perhaps we can use something existing, like this:
https://github.com/flaptor/hist4j/blob/master/Hist4jExample.java
as a dependence for fatjar, or maybe you can suggest something else.
> Improved system test
> --------------------
>
> Key: ZOOKEEPER-2023
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2023
> Project: ZooKeeper
> Issue Type: Test
> Components: contrib-fatjar
> Affects Versions: 3.5.0
> Reporter: Kfir Lev-Ari
> Assignee: Kfir Lev-Ari
> Priority: Minor
> Attachments: ZOOKEEPER-2023.patch
>
>
> Adding the ability to perform a system test of mixed workloads using
> read-only/mixed/write-only clients.
> In addition, adding few basic latency statistics.
> https://reviews.apache.org/r/25217/
> Just in case it'll help someone, here is an example of how to run generate
> load system test:
> 1. Checkout zookeeper-trunk
> 2. Go to zookeeper-trunk, run "ant jar compile-test"
> 3. Go to zookeeper-trunk\src\contrib\fatjar, run "ant jar"
> 4. Copy zookeeper-dev-fatjar.jar from zookeeper-trunk\build\contrib\fatjar to
> each of the machines you wish to use.
> 5. On each server, assuming that you've created a valid ZK config file (e.g.,
> zk.cfg) and a dataDir, run:
> 5.1 java -jar zookeeper-dev-fatjar.jar server ./zk.cfg &
> 5.2 java -jar zookeeper-dev-fatjar.jar ic <name of this server>:<its
> client port> <name of this server>:<its client port> /sysTest &
> 6. And finally, in order to run the test (from some machine), execute the
> command:
> java -jar zookeeper-dev-fatjar.jar generateLoad <name of one of the
> servers>:<its client port> /sysTest <number of servers> <number of read-only
> clients> <number of mixed workload clients> <number of write-only clients>
> Note that "/sysTest" is the same name that we used in 5.2.
> You'll see "Preferred List is empty" message, and after few seconds you
> should get notifications of "Accepted connection from Socket[....".
> Afterwards, just set the percentage of the mixed workload clients by entering
> "percentage <number>" and the test will start.
> Some explanation regarding the new output (which is printed every 6 seconds,
> and is reset every time you enter a new percentage).
> Interval: <interval number> <time>
> Test info: <number of RO clients>xRO <number of mixed workload
> clients>x<their write percentage>%W <number of write only clients>xWO,
> percentiles [0.5, 0.9, 0.95, 0.99]
> Throughput: <current interval throughput> | <minimum throughput until now>
> <average throughput until now> <maximum throughput until now>
> Read latency: interval [<interval's read latency values according to the
> percentiles>], total [<read latency values until now, according to the
> percentiles>]
> Write latency: interval [interval's write latency values according to the
> percentiles], total [<write latency values until now, according to the
> percentiles>]
> Note that the throughput is requests per second, and latency is in ms. In
> addition, if you perform a read only test / write only test, you won't see
> the printout of write / read latency.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)