ZooKeeper service latencies under various loads & configurations
Author: http://people.apache.org/~phunt/ (follow me on http://twitter.com/phunt)
The intent of this document is to examine the performance of a typical ZooKeeper service while varying the load and available computing power. This is not an exhaustive test but meant to shed some light on the amount of load ZK can support for various (lower powered) hardware configurations. In particular I was interested in seeing how hosts running ZooKeeper servers on shared disks performed - while varying the number of cpus and clients.
Hardware
All systems were dual quad core Intel(R) Xeon(R) CPUs running at 2.50GHz. Eight cores were available however as noted below Linux's processor affinity feature was used to limit CPU availability to the JVM. In the tests below I use 1, 2, or 4 cores from the first CPU (taskset 0x01 or 0x03 or 0x0f respectively).
All systems had 16gig ECC memory available, however unless specifically noted the JVM's -Xmx option was used to limit the size of the JVM heap to 512m.
All systems had 7200RPM SATA drives
- hdparm -tT reported:
- Timing cached reads: 22980 MB in 1.99 seconds = 11532.40 MB/sec
- Timing buffered disk reads: 266 MB in 3.01 seconds = 88.29 MB/sec
- time dd if=/dev/urandom bs=512000 of=/tmp/memtest count=1050
- 537600000 bytes (538 MB) copied, 73.9991 seconds, 7.3 MB/s
- real 1m14.001s
- user 0m0.000s
- sys 1m13.995s
- time md5sum /tmp/memtest; time md5sum /tmp/memtest; time md5sum /tmp/memtest
- real 0m1.498s
- user 0m1.284s
- sys 0m0.214s
All systems are interconnected with 1gig ethernet, approximate ping time is steady at 0.09ms roundtrip.
- scp host60:/tmp/test /tmp/test
- test 100% 513MB 64.1MB/s 00:08
Operating System
Linux version 2.6.18-53.1.13.el5 compiled using gcc version 4.1.2 20070626 (Red Hat 4.1.2-14))
Software
- ZooKeeper 3.2.1
- java version "1.6.0_05" (build 1.6.0_05-b13)
- Java ?HotSpot(TM) Server VM (build 10.0-b19, mixed mode)
ZooKeeper Configuration
The following basic configuration was used on all serving nodes:
tickTime=2000 initLimit=10 syncLimit=5 dataDir=<data directory> clientPort=2181
A dedicated log device was not used, the data directory is store on the same device as the operating system, the ZK snapshots and log4j logs.
The standard zkServer.sh script that ships with the release was used to start the service. No modification were made other than to control processor affinity and heap size as noted in this document.
Test Client
- zk-latencies.py from http://github.com/phunt/zk-smoketest was used as the test client.
- python 2.4.3
Result Summary
In the following tests we are varying the number of cores and clients workloads. The clients are homogeneous, each is performing 110,000 asynchronous operations against the service, where the workload is:
- create 10k permanent znodes of size 100 bytes
- set 10k znodes of size 100 bytes
- get 10k znodes (100 bytes returned)
- delete all 10k znodes
- create 10k ephemeral znodes of size 100 bytes
- watch each of the 10k znodes 5 times (50k watches)
- delete 10k znodes and measure time for notifications to be received by the client (from the 50k watches)
Of the 110k operations 50k are write operations, the remaining 60k are read operations. Read operations being local to the connected server while writes must be propagated through the leader & atomic broadcast protocol (ie copied to all servers in an ensemble)
Standalone Result
In the following graph you can see the results of this experiment for a single Standalone serving instance. The X axis shows the number of operations per second that were processed by the server for 1, 2 & 4 cores, where 1, 10 & 20 clients were testing the cluster.
Standalone Server |
From the graph and the data below we can see that moving from a workload of 1 to 10 clients shows an increase in overall operations performed by the server. However moving from 10 to 20 clients we see no further increase (rather some decrease, potentially due to the overhead of selector processing and connection management in the server networking code). Increasing the number of cores provides modest increase in the overall output of the server. This makes sense as there are a limited number of threads running in a standalone server, it is unable to take advantage of the additional cores.
Ensemble with 3 Serving Nodes Result
In the following graph you can see the results of this experiment for a 3 Server Ensemble. The X axis shows the number of operations per second that were processed by the server for 1, 2 & 4 cores, where 1, 10 & 20 clients were testing the cluster.
Ensemble with 3 Serving Nodes |
Here we see distinct increase in the output of the cluster as we move the workload from 1 to 10 to 20 clients. There is some additional headroom that we could see if we were to test with higher workloads. Additionally as the core count increases we see output gains there as well. Ensemble servers are running additional threads to process the quorum communication, these threads are taking advantage of the additional parallelism.
Conclusion
I hope this sheds more light on the tradeoffs that can be made when setting up a ZK cluster. In particular we can see the performance of a small cluster (reliable even in the face of a single server going down) is quite solid even under a heavy (30k+ operations per second on dual core with a high write to read ratio, much higher than you should typically see in a production deployment) client workload. Additionally the session stability was rock solid - no timeouts or session expirations were seen during any of the tests.
Notes, Futures
I used the out of the box zkServer.sh for this test. I did look at using the incremental garbage collector however as far as I could tell there was no benefit seen for these tests. It might be interesting to look at this more, is there some benefit to be had?
I also did not use the --server flag, again, I did some limited testing with this and afaics there is no benefit to using this option with a ZK cluster.
It would be interesting to test other workloads. Here I've weighted things more to a balanced write/read workload. In production deployments we typically see a heavy read dominant workload. In this case the service performance should be even better than what we are seeing here.
Additionally it might be interesting to try tuning the ZK configuration parameters. For example to examine the effects of leaderServes and forceSync options (to name just two) on overall performance and latency.
During the tests the snapshot (on disk copy of the znode data) reached approximately 100meg in size (as mentioned previously the JVM heap is limited to 512 meg), by default transactional log files are pre-allocated to ~60meg. Additional snapshots and logs are written as needed. Depending on your workload, the frequency of your snap/log cleanup, and your cluster configuration you should allow sufficient storage space. For example running a 20 client test required approximately 5 gig of disk storage. (the tests were not cleaning up old snaps/logs, so this was accumulated over the test lifetime).
Result Details
the results are as follows for standalone and 3 node ensemble
Note: in each case below I give only a single client's results, regardless of the number of clients run in the tests. I do this to limit the length of this document, the results that I do show are for the last, longest running client, so in general these are the worst performing results of any client in the test. I also verify that all clients completed successfully and without warnings or errors in the client log.
Results for Standalone Server
The Standalone version of ZooKeeper was run on a single host ("host60").
The client(s) was run as follows unless otherwise noted:
zk-latencies.py --cluster "host60:2181" --root_znode=/{{hostname}} --znode_size=100 --znode_count=10000 --timeout=5000 --watch_multiple=5
This means each client:
- has a 5 second timeout
- creates 10k znodes of size 100 bytes
- sets 5 watches on each of the znodes it creates, for 50k znodes by each client
As a result, each client will send ~110,000 requests to the server during each test.
1 Core - 1 Client
110k operations against the server with elapsed time of 18 seconds
host40: Testing latencies on server host60:2181 using asynchronous calls host40: created 10000 permanent znodes in 1219 ms (0.121911 ms/op 8202.684317/sec) host40: set 10000 znodes in 1600 ms (0.160094 ms/op 6246.310789/sec) host40: get 10000 znodes in 1744 ms (0.174442 ms/op 5732.564236/sec) host40: deleted 10000 permanent znodes in 1386 ms (0.138648 ms/op 7212.503931/sec) host40: created 10000 ephemeral znodes in 1608 ms (0.160836 ms/op 6217.525272/sec) host40: watched 50000 znodes in 7509 ms (0.150180 ms/op 6658.670068/sec) host40: deleted 10000 ephemeral znodes in 2139 ms (0.213949 ms/op 4674.011338/sec) host40: notif 50000 watches in 0 ms (included in prior) host40: Latency test complete host40: 15.20user 7.06system 0:17.74elapsed 125%CPU (0avgtext+0avgdata 0maxresident)k host40: 0inputs+0outputs (0major+71244minor)pagefaults 0swaps
1 Core - 10 Client
1.1 million operations against the server with elapsed time of 58 seconds
host46: Testing latencies on server host60:2181 using asynchronous calls host46: created 10000 permanent znodes in 6493 ms (0.649358 ms/op 1539.982995/sec) host46: set 10000 znodes in 4538 ms (0.453877 ms/op 2203.239641/sec) host46: get 10000 znodes in 13229 ms (1.322971 ms/op 755.874244/sec) host46: deleted 10000 permanent znodes in 4967 ms (0.496763 ms/op 2013.030379/sec) host46: created 10000 ephemeral znodes in 5196 ms (0.519624 ms/op 1924.468834/sec) host46: watched 50000 znodes in 17421 ms (0.348424 ms/op 2870.067528/sec) host46: deleted 10000 ephemeral znodes in 4901 ms (0.490112 ms/op 2040.351571/sec) host46: notif 50000 watches in 0 ms (included in prior) host46: Latency test complete host46: 15.94user 6.40system 0:57.40elapsed 38%CPU (0avgtext+0avgdata 0maxresident)k host46: 0inputs+0outputs (2major+69981minor)pagefaults 0swaps
1 Core - 20 Client
2.2 million operations against the server with elapsed time of 150 seconds
host67: Testing latencies on server host60:2181 using asynchronous calls host67: created 10000 permanent znodes in 12881 ms (1.288103 ms/op 776.335485/sec) host67: set 10000 znodes in 10448 ms (1.044807 ms/op 957.114388/sec) host67: get 10000 znodes in 14859 ms (1.485911 ms/op 672.988006/sec) host67: deleted 10000 permanent znodes in 17420 ms (1.742049 ms/op 574.036736/sec) host67: created 10000 ephemeral znodes in 13450 ms (1.345097 ms/op 743.440587/sec) host67: watched 50000 znodes in 53507 ms (1.070143 ms/op 934.454518/sec) host67: deleted 10000 ephemeral znodes in 26196 ms (2.619615 ms/op 381.735542/sec) host67: notif 50000 watches in 0 ms (included in prior) host67: Latency test complete host67: 16.16user 6.43system 2:29.38elapsed 15%CPU (0avgtext+0avgdata 0maxresident)k host67: 0inputs+0outputs (2major+73149minor)pagefaults 0swaps
2 Core - 1 Client
110k operations against the server with elapsed time of 20 seconds
host40: Testing latencies on server host60:2181 using asynchronous calls host40: created 10000 permanent znodes in 2420 ms (0.242055 ms/op 4131.292291/sec) host40: set 10000 znodes in 1613 ms (0.161318 ms/op 6198.940227/sec) host40: get 10000 znodes in 1694 ms (0.169480 ms/op 5900.384144/sec) host40: deleted 10000 permanent znodes in 1440 ms (0.144013 ms/op 6943.822193/sec) host40: created 10000 ephemeral znodes in 1589 ms (0.158944 ms/op 6291.516084/sec) host40: watched 50000 znodes in 9442 ms (0.188850 ms/op 5295.203361/sec) host40: deleted 10000 ephemeral znodes in 2272 ms (0.227226 ms/op 4400.912310/sec) host40: notif 50000 watches in 0 ms (included in prior) host40: Latency test complete host40: 16.97user 8.17system 0:20.96elapsed 119%CPU (0avgtext+0avgdata 0maxresident)k host40: 0inputs+0outputs (2major+73972minor)pagefaults 0swaps
2 Core - 10 Client
1.1 million operations against the server with elapsed time of 53 seconds
host49: Testing latencies on server host60:2181 using asynchronous calls host49: created 10000 permanent znodes in 5316 ms (0.531661 ms/op 1880.897081/sec) host49: set 10000 znodes in 4549 ms (0.454980 ms/op 2197.897811/sec) host49: get 10000 znodes in 3273 ms (0.327330 ms/op 3055.021880/sec) host49: deleted 10000 permanent znodes in 9378 ms (0.937850 ms/op 1066.268703/sec) host49: created 10000 ephemeral znodes in 5195 ms (0.519526 ms/op 1924.832170/sec) host49: watched 50000 znodes in 17633 ms (0.352667 ms/op 2835.533635/sec) host49: deleted 10000 ephemeral znodes in 7606 ms (0.760661 ms/op 1314.646067/sec) host49: notif 50000 watches in 0 ms (included in prior) host49: Latency test complete host49: 16.26user 6.74system 0:53.65elapsed 42%CPU (0avgtext+0avgdata 0maxresident)k host49: 0inputs+0outputs (2major+71633minor)pagefaults 0swaps
2 Core - 20 Client
2.2 million operations against the server with elapsed time of 108 seconds
host46: Testing latencies on server host60:2181 using asynchronous calls host46: created 10000 permanent znodes in 10765 ms (1.076519 ms/op 928.920312/sec) host46: set 10000 znodes in 13262 ms (1.326232 ms/op 754.015764/sec) host46: get 10000 znodes in 17171 ms (1.717179 ms/op 582.350402/sec) host46: deleted 10000 permanent znodes in 10307 ms (1.030792 ms/op 970.127826/sec) host46: created 10000 ephemeral znodes in 9636 ms (0.963677 ms/op 1037.692397/sec) host46: watched 50000 znodes in 31042 ms (0.620850 ms/op 1610.695533/sec) host46: deleted 10000 ephemeral znodes in 13254 ms (1.325475 ms/op 754.446396/sec) host46: notif 50000 watches in 0 ms (included in prior) host46: Latency test complete host46: 18.18user 6.09system 1:48.16elapsed 22%CPU (0avgtext+0avgdata 0maxresident)k host46: 0inputs+0outputs (0major+73188minor)pagefaults 0swaps
4 Core - 1 Client
110k operations against the server with elapsed time of 20 seconds
host40: Testing latencies on server host60:2181 using asynchronous calls host40: created 10000 permanent znodes in 1628 ms (0.162839 ms/op 6141.034732/sec) host40: set 10000 znodes in 1583 ms (0.158326 ms/op 6316.066553/sec) host40: get 10000 znodes in 1655 ms (0.165526 ms/op 6041.344054/sec) host40: deleted 10000 permanent znodes in 1463 ms (0.146302 ms/op 6835.186174/sec) host40: created 10000 ephemeral znodes in 1591 ms (0.159110 ms/op 6284.971481/sec) host40: watched 50000 znodes in 9426 ms (0.188539 ms/op 5303.937335/sec) host40: deleted 10000 ephemeral znodes in 2254 ms (0.225496 ms/op 4434.673973/sec) host40: notif 50000 watches in 0 ms (included in prior) host40: Latency test complete host40: 17.03user 8.25system 0:20.14elapsed 125%CPU (0avgtext+0avgdata 0maxresident)k host40: 0inputs+0outputs (0major+72575minor)pagefaults 0swaps
4 Core - 10 Client
1.1 million operations against the server with elapsed time of 43 seconds
host43: Testing latencies on server host60:2181 using asynchronous calls host43: created 10000 permanent znodes in 5421 ms (0.542148 ms/op 1844.515451/sec) host43: set 10000 znodes in 5050 ms (0.505025 ms/op 1980.098852/sec) host43: get 10000 znodes in 2831 ms (0.283189 ms/op 3531.208094/sec) host43: deleted 10000 permanent znodes in 3682 ms (0.368277 ms/op 2715.345120/sec) host43: created 10000 ephemeral znodes in 6300 ms (0.630003 ms/op 1587.294271/sec) host43: watched 50000 znodes in 13783 ms (0.275669 ms/op 3627.543622/sec) host43: deleted 10000 ephemeral znodes in 5911 ms (0.591175 ms/op 1691.546474/sec) host43: notif 50000 watches in 0 ms (included in prior) host43: Latency test complete host43: 16.40user 6.93system 0:43.63elapsed 53%CPU (0avgtext+0avgdata 0maxresident)k host43: 0inputs+0outputs (2major+71052minor)pagefaults 0swaps
4 Core - 20 Client
2.2 million operations against the server with elapsed time of 95 seconds
host65: Testing latencies on server host60:2181 using asynchronous calls host65: created 10000 permanent znodes in 11458 ms (1.145814 ms/op 872.742079/sec) host65: set 10000 znodes in 7248 ms (0.724857 ms/op 1379.582825/sec) host65: get 10000 znodes in 8641 ms (0.864138 ms/op 1157.222181/sec) host65: deleted 10000 permanent znodes in 11239 ms (1.123901 ms/op 889.758416/sec) host65: created 10000 ephemeral znodes in 13059 ms (1.305911 ms/op 765.748972/sec) host65: watched 50000 znodes in 32384 ms (0.647690 ms/op 1543.949402/sec) host65: deleted 10000 ephemeral znodes in 10303 ms (1.030382 ms/op 970.514240/sec) host65: notif 50000 watches in 0 ms (included in prior) host65: Latency test complete host65: 14.64user 5.45system 1:35.02elapsed 21%CPU (0avgtext+0avgdata 0maxresident)k host65: 0inputs+0outputs (0major+75539minor)pagefaults 0swaps
Results for 3 Server Ensemble
A 3 Server Ensemble (3 distinct hosts) was used for this test ("host60", "host62" & "host63").
The client was run as follows unless otherwise noted:
zk-latencies.py --cluster "host60:2181,host61:2181,host63:2181" --root_znode=/{{hostname}} --znode_size=100 --znode_count=10000 --timeout=5000 --watch_multiple=5
This means each client:
- has a 5 second timeout
- creates 10k znodes of size 100 bytes
- sets 5 watches on each of the znodes it creates, for 50k znodes by each client
As a result, each client will send ~110,000 requests to the server during each test.
1 Core - 1 Client
110k operations against the server with elapsed time of 22 seconds
host40: created 10000 permanent znodes in 3705 ms (0.370585 ms/op 2698.435645/sec) host40: set 10000 znodes in 1581 ms (0.158110 ms/op 6324.698298/sec) host40: get 10000 znodes in 1719 ms (0.171902 ms/op 5817.264317/sec) host40: deleted 10000 permanent znodes in 1417 ms (0.141717 ms/op 7056.330469/sec) host40: created 10000 ephemeral znodes in 1602 ms (0.160281 ms/op 6239.035623/sec) host40: watched 50000 znodes in 9156 ms (0.183121 ms/op 5460.880962/sec) host40: deleted 10000 ephemeral znodes in 2210 ms (0.221096 ms/op 4522.914060/sec) host40: notif 50000 watches in 0 ms (included in prior) host40: Latency test complete host40: 16.77user 7.79system 0:22.02elapsed 111%CPU (0avgtext+0avgdata 0maxresident)k host40: 0inputs+0outputs (2major+71106minor)pagefaults 0swaps
1 Core - 10 Client
1.1 million operations against the server with elapsed time of 52 seconds
host43: created 10000 permanent znodes in 15068 ms (1.506821 ms/op 663.648755/sec) host43: set 10000 znodes in 6400 ms (0.640035 ms/op 1562.414824/sec) host43: get 10000 znodes in 6858 ms (0.685819 ms/op 1458.111314/sec) host43: deleted 10000 permanent znodes in 5444 ms (0.544488 ms/op 1836.588407/sec) host43: created 10000 ephemeral znodes in 5467 ms (0.546737 ms/op 1829.034317/sec) host43: watched 50000 znodes in 9212 ms (0.184244 ms/op 5427.576914/sec) host43: deleted 10000 ephemeral znodes in 2204 ms (0.220440 ms/op 4536.389994/sec) host43: notif 50000 watches in 0 ms (included in prior) host43: Latency test complete host43: 16.49user 7.50system 0:52.00elapsed 46%CPU (0avgtext+0avgdata 0maxresident)k host43: 0inputs+0outputs (2major+73374minor)pagefaults 0swaps
1 Core - 20 Client
2.2 million operations against the server with elapsed time of 93 seconds
host47: created 10000 permanent znodes in 23807 ms (2.380728 ms/op 420.039583/sec) host47: set 10000 znodes in 18242 ms (1.824297 ms/op 548.156301/sec) host47: get 10000 znodes in 8831 ms (0.883173 ms/op 1132.281006/sec) host47: deleted 10000 permanent znodes in 13448 ms (1.344885 ms/op 743.558057/sec) host47: created 10000 ephemeral znodes in 11384 ms (1.138425 ms/op 878.406797/sec) host47: watched 50000 znodes in 10753 ms (0.215074 ms/op 4649.572468/sec) host47: deleted 10000 ephemeral znodes in 5636 ms (0.563623 ms/op 1774.235993/sec) host47: notif 50000 watches in 0 ms (included in prior) host47: Latency test complete host47: 16.20user 6.97system 1:33.16elapsed 24%CPU (0avgtext+0avgdata 0maxresident)k host47: 0inputs+0outputs (0major+71849minor)pagefaults 0swaps
2 Core - 1 Client
110k operations against the server with elapsed time of 20 seconds
host40: created 10000 permanent znodes in 1910 ms (0.191017 ms/op 5235.149647/sec) host40: set 10000 znodes in 1604 ms (0.160475 ms/op 6231.495923/sec) host40: get 10000 znodes in 1708 ms (0.170852 ms/op 5853.005323/sec) host40: deleted 10000 permanent znodes in 1512 ms (0.151266 ms/op 6610.874968/sec) host40: created 10000 ephemeral znodes in 1597 ms (0.159736 ms/op 6260.325280/sec) host40: watched 50000 znodes in 9361 ms (0.187236 ms/op 5340.855592/sec) host40: deleted 10000 ephemeral znodes in 2278 ms (0.227898 ms/op 4387.931573/sec) host40: notif 50000 watches in 0 ms (included in prior) host40: Latency test complete host40: 17.01user 7.95system 0:20.52elapsed 121%CPU (0avgtext+0avgdata 0maxresident)k host40: 0inputs+0outputs (0major+74021minor)pagefaults 0swaps
2 Core - 10 Client
1.1 million operations against the server with elapsed time of 35 seconds
host49: created 10000 permanent znodes in 7788 ms (0.778842 ms/op 1283.957982/sec) host49: set 10000 znodes in 4339 ms (0.433999 ms/op 2304.153334/sec) host49: get 10000 znodes in 2371 ms (0.237105 ms/op 4217.544356/sec) host49: deleted 10000 permanent znodes in 4862 ms (0.486300 ms/op 2056.345873/sec) host49: created 10000 ephemeral znodes in 3569 ms (0.356916 ms/op 2801.775772/sec) host49: watched 50000 znodes in 9279 ms (0.185594 ms/op 5388.116824/sec) host49: deleted 10000 ephemeral znodes in 2004 ms (0.200473 ms/op 4988.202935/sec) host49: notif 50000 watches in 0 ms (included in prior) host49: Latency test complete host49: 16.35user 7.39system 0:35.09elapsed 67%CPU (0avgtext+0avgdata 0maxresident)k host49: 0inputs+0outputs (3major+72326minor)pagefaults 0swaps
2 Core - 20 Client
2.2 million operations against the server with elapsed time of 65 seconds
host53: created 10000 permanent znodes in 14369 ms (1.436911 ms/op 695.937229/sec) host53: set 10000 znodes in 9219 ms (0.921955 ms/op 1084.652098/sec) host53: get 10000 znodes in 7673 ms (0.767396 ms/op 1303.108503/sec) host53: deleted 10000 permanent znodes in 7229 ms (0.722930 ms/op 1383.259375/sec) host53: created 10000 ephemeral znodes in 8599 ms (0.859978 ms/op 1162.819917/sec) host53: watched 50000 znodes in 12619 ms (0.252387 ms/op 3962.162335/sec) host53: deleted 10000 ephemeral znodes in 4642 ms (0.464251 ms/op 2154.009006/sec) host53: notif 50000 watches in 0 ms (included in prior) host53: Latency test complete host53: 14.44user 5.08system 1:05.21elapsed 29%CPU (0avgtext+0avgdata 0maxresident)k host53: 0inputs+0outputs (2major+69809minor)pagefaults 0swaps
4 Core - 1 Client
110k operations against the server with elapsed time of 20 seconds
host40: created 10000 permanent znodes in 1589 ms (0.158944 ms/op 6291.516084/sec) host40: set 10000 znodes in 1572 ms (0.157295 ms/op 6357.472953/sec) host40: get 10000 znodes in 1713 ms (0.171362 ms/op 5835.606165/sec) host40: deleted 10000 permanent znodes in 1447 ms (0.144768 ms/op 6907.623247/sec) host40: created 10000 ephemeral znodes in 1609 ms (0.160907 ms/op 6214.762414/sec) host40: watched 50000 znodes in 9535 ms (0.190719 ms/op 5243.304577/sec) host40: deleted 10000 ephemeral znodes in 2254 ms (0.225470 ms/op 4435.170105/sec) host40: notif 50000 watches in 0 ms (included in prior) host40: Latency test complete host40: 16.95user 8.53system 0:20.27elapsed 125%CPU (0avgtext+0avgdata 0maxresident)k host40: 0inputs+0outputs (0major+73094minor)pagefaults 0swaps
4 Core - 10 Client
1.1 million operations against the server with elapsed time of 30 seconds
host49: created 10000 permanent znodes in 5470 ms (0.547053 ms/op 1827.976119/sec) host49: set 10000 znodes in 4285 ms (0.428503 ms/op 2333.703802/sec) host49: get 10000 znodes in 1695 ms (0.169513 ms/op 5899.249693/sec) host49: deleted 10000 permanent znodes in 3801 ms (0.380188 ms/op 2630.275589/sec) host49: created 10000 ephemeral znodes in 2953 ms (0.295355 ms/op 3385.752729/sec) host49: watched 50000 znodes in 9185 ms (0.183702 ms/op 5443.598826/sec) host49: deleted 10000 ephemeral znodes in 2229 ms (0.222966 ms/op 4484.998745/sec) host49: notif 50000 watches in 0 ms (included in prior) host49: Latency test complete host49: 16.55user 7.69system 0:30.31elapsed 79%CPU (0avgtext+0avgdata 0maxresident)k host49: 0inputs+0outputs (0major+69011minor)pagefaults 0swaps
4 Core - 20 Client
2.2 million operations against the server with elapsed time of 53 seconds
host47: created 10000 permanent znodes in 10967 ms (1.096777 ms/op 911.762226/sec) host47: set 10000 znodes in 7628 ms (0.762822 ms/op 1310.922660/sec) host47: get 10000 znodes in 4896 ms (0.489673 ms/op 2042.178396/sec) host47: deleted 10000 permanent znodes in 9035 ms (0.903586 ms/op 1106.701776/sec) host47: created 10000 ephemeral znodes in 4735 ms (0.473520 ms/op 2111.844099/sec) host47: watched 50000 znodes in 11316 ms (0.226338 ms/op 4418.168721/sec) host47: deleted 10000 ephemeral znodes in 4044 ms (0.404485 ms/op 2472.282121/sec) host47: notif 50000 watches in 0 ms (included in prior) host47: Latency test complete host47: 16.13user 6.67system 0:53.31elapsed 42%CPU (0avgtext+0avgdata 0maxresident)k host47: 0inputs+0outputs (0major+69545minor)pagefaults 0swaps