Uploaded image for project: 'ZooKeeper'
  1. ZooKeeper
  2. ZOOKEEPER-2023

Improved system test

    XMLWordPrintableJSON

Details

    • Test
    • Status: Patch Available
    • Minor
    • Resolution: Unresolved
    • 3.5.0
    • None
    • contrib-fatjar
    • None

    Description

      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.

      Attachments

        1. ZOOKEEPER-2023.patch
          28 kB
          Kfir Lev-Ari
        2. ZOOKEEPER-2023.patch
          28 kB
          Kfir Lev-Ari

        Activity

          People

            kfirlevari Kfir Lev-Ari
            kfirlevari Kfir Lev-Ari
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: