clusterperf January 2016 basic+infud
clusterperf output as measured on January 6, 2016 using the new BasicTransport with InfUdDriver (rc1-rc20):
basic.read100 5.1 us read random 100B object (30B key) median basic.read100.min 4.8 us read random 100B object (30B key) minimum basic.read100.9 5.6 us read random 100B object (30B key) 90% basic.read100.99 6.0 us read random 100B object (30B key) 99% basic.read100.999 9.5 us read random 100B object (30B key) 99.9% basic.readBw100 18.2 MB/s bandwidth reading 100B objects (30B key) basic.read1K 6.6 us read random 1KB object (30B key) median basic.read1K.min 6.1 us read random 1KB object (30B key) minimum basic.read1K.9 7.0 us read random 1KB object (30B key) 90% basic.read1K.99 7.8 us read random 1KB object (30B key) 99% basic.read1K.999 12.1 us read random 1KB object (30B key) 99.9% basic.readBw1K 142.0 MB/s bandwidth reading 1KB objects (30B key) basic.read10K 11.7 us read random 10KB object (30B key) median basic.read10K.min 10.1 us read random 10KB object (30B key) minimum basic.read10K.9 12.3 us read random 10KB object (30B key) 90% basic.read10K.99 13.3 us read random 10KB object (30B key) 99% basic.read10K.999 22.4 us read random 10KB object (30B key) 99.9% basic.readBw10K 811.5 MB/s bandwidth reading 10KB objects (30B key) basic.read100K 55.0 us read random 100KB object (30B key) median basic.read100K.min 42.2 us read random 100KB object (30B key) minimum basic.read100K.9 56.5 us read random 100KB object (30B key) 90% basic.read100K.99 63.4 us read random 100KB object (30B key) 99% basic.read100K.999 123.1 us read random 100KB object (30B key) 99.9% basic.readBw100K 1.7 GB/s bandwidth reading 100KB objects (30B key) basic.read1M 489.8 us read random 1MB object (30B key) median basic.read1M.min 374.2 us read random 1MB object (30B key) minimum basic.read1M.9 502.5 us read random 1MB object (30B key) 90% basic.read1M.99 532.3 us read random 1MB object (30B key) 99% basic.read1M.999 602.1 us read random 1MB object (30B key) 99.9% basic.readBw1M 1.9 GB/s bandwidth reading 1MB objects (30B key) basic.write100 15.5 us write random 100B object (30B key) median basic.write100.min 14.2 us write random 100B object (30B key) minimum basic.write100.9 16.2 us write random 100B object (30B key) 90% basic.write100.99 22.0 us write random 100B object (30B key) 99% basic.write100.999 96.8 us write random 100B object (30B key) 99.9% basic.writeBw100 6.0 MB/s bandwidth writing 100B objects (30B key) basic.write1K 17.5 us write random 1KB object (30B key) median basic.write1K.min 16.3 us write random 1KB object (30B key) minimum basic.write1K.9 18.3 us write random 1KB object (30B key) 90% basic.write1K.99 28.1 us write random 1KB object (30B key) 99% basic.write1K.999 112.1 us write random 1KB object (30B key) 99.9% basic.writeBw1K 52.5 MB/s bandwidth writing 1KB objects (30B key) basic.write10K 39.1 us write random 10KB object (30B key) median basic.write10K.min 35.9 us write random 10KB object (30B key) minimum basic.write10K.9 41.2 us write random 10KB object (30B key) 90% basic.write10K.99 186.2 us write random 10KB object (30B key) 99% basic.write10K.999 217.3 us write random 10KB object (30B key) 99.9% basic.writeBw10K 210.1 MB/s bandwidth writing 10KB objects (30B key) basic.write100K 216.1 us write random 100KB object (30B key) median basic.write100K.min 204.9 us write random 100KB object (30B key) minimum basic.write100K.9 325.3 us write random 100KB object (30B key) 90% basic.write100K.99 416.0 us write random 100KB object (30B key) 99% basic.write100K.999 24.6 ms write random 100KB object (30B key) 99.9% basic.writeBw100K 219.8 MB/s bandwidth writing 100KB objects (30B key) basic.write1M 2.0 ms write random 1MB object (30B key) median basic.write1M.min 2.0 ms write random 1MB object (30B key) minimum basic.write1M.9 2.3 ms write random 1MB object (30B key) 90% basic.write1M.99 29.2 ms write random 1MB object (30B key) 99% basic.writeBw1M 217.9 MB/s bandwidth writing 1MB objects (30B key) # RAMCloud multiRead performance for 100 B objects with 30 byte keys # located on a single master. # Generated by 'clusterperf.py multiRead_oneMaster' # # Num Objs Num Masters Objs/Master Latency (us) Latency/Obj (us) #---------------------------------------------------------------------------- 1 1 1 6.1 6.10 2 1 2 7.4 3.72 3 1 3 8.6 2.86 4 1 4 9.2 2.31 5 1 5 10.0 2.00 6 1 6 11.0 1.83 7 1 7 11.8 1.68 8 1 8 12.4 1.54 9 1 9 13.0 1.44 10 1 10 13.8 1.38 20 1 20 21.1 1.05 30 1 30 23.4 0.78 40 1 40 28.1 0.70 50 1 50 31.4 0.63 60 1 60 34.8 0.58 70 1 70 35.7 0.51 80 1 80 36.6 0.46 90 1 90 36.4 0.40 100 1 100 41.9 0.42 200 1 200 69.5 0.35 300 1 300 106.5 0.36 400 1 400 142.9 0.36 500 1 500 178.8 0.36 600 1 600 216.0 0.36 700 1 700 252.2 0.36 800 1 800 291.9 0.36 900 1 900 324.9 0.36 1000 1 1000 363.8 0.36 2000 1 2000 726.4 0.36 3000 1 3000 1085.8 0.36 4000 1 4000 1448.9 0.36 5000 1 5000 1815.2 0.36 # RAMCloud multiRead performance for 100 B objects with 30 byte keys # with one object located on each master. # Generated by 'clusterperf.py multiRead_oneObjectPerMaster' # # Num Objs Num Masters Objs/Master Latency (us) Latency/Obj (us) #---------------------------------------------------------------------------- 1 1 1 5.9 5.93 2 2 1 7.2 3.58 3 3 1 8.3 2.77 4 4 1 9.7 2.42 5 5 1 10.8 2.17 6 6 1 12.2 2.03 7 7 1 13.5 1.92 8 8 1 15.1 1.88 9 9 1 16.3 1.82 10 10 1 18.5 1.85 11 11 1 22.5 2.04 12 12 1 23.8 1.99 13 13 1 24.7 1.90 14 14 1 26.0 1.86 15 15 1 27.9 1.86 16 16 1 30.6 1.91 17 17 1 32.7 1.92 18 18 1 36.6 2.03 19 19 1 37.5 1.97 # RAMCloud multi-read throughput of a single server with a # varying number of clients issuing 80-object multi-reads on # randomly-chosen 100-byte objects with 30-byte keys # Generated by 'clusterperf.py multiReadThroughput' # # numClients throughput worker dispatch # (kreads/sec) utiliz. utiliz. #------------------------------------------------ 1 2276 1.344 0.056 2 4415 2.433 0.242 3 4809 2.885 0.313 4 5496 2.911 0.340 5 4825 2.906 0.294 6 5162 2.894 0.334 7 5033 2.911 0.324 8 4805 2.907 0.298 9 4865 2.895 0.305 10 4615 2.909 0.280 11 4694 2.910 0.282 12 4771 2.901 0.286 13 4738 2.913 0.291 14 5076 2.914 0.324 # RAMCloud multiWrite performance for 100 B objects with 30 byte keys # located on a single master. # Generated by 'clusterperf.py multiWrite_oneMaster' # # Num Objs Num Masters Objs/Master Latency (us) Latency/Obj (us) #---------------------------------------------------------------------------- 1 1 1 15.8 15.76 2 1 2 16.8 8.42 3 1 3 18.2 6.06 4 1 4 19.7 4.94 5 1 5 21.8 4.36 6 1 6 23.1 3.85 7 1 7 25.2 3.60 8 1 8 27.4 3.43 9 1 9 30.1 3.34 10 1 10 33.1 3.31 20 1 20 47.1 2.35 30 1 30 62.1 2.07 40 1 40 73.1 1.83 50 1 50 79.2 1.58 60 1 60 1383.6 23.06 70 1 70 109.6 1.57 80 1 80 4710.6 58.88 90 1 90 128.1 1.42 100 1 100 145.0 1.45 200 1 200 3099.0 15.50 300 1 300 354.1 1.18 400 1 400 1906.0 4.76 500 1 500 536.7 1.07 600 1 600 2906.3 4.84 700 1 700 817.5 1.17 800 1 800 3198.8 4.00 900 1 900 912.8 1.01 1000 1 1000 5324.4 5.32 2000 1 2000 2070.8 1.04 3000 1 3000 17748.7 5.92 4000 1 4000 4574.1 1.14 5000 1 5000 21417.5 4.28 # Cumulative distribution of time for a single client to read a # random 100-byte object from a single server. Each line indicates # that a given fraction of all reads took at most a given time # to complete. # Generated by 'clusterperf.py readDist' # # Time (usec) Cum. Fraction #--------------------------- 0.00 0.000 4.76 0.000 4.91 0.010 4.93 0.020 4.94 0.030 4.95 0.040 4.96 0.050 4.97 0.060 4.97 0.070 4.98 0.080 4.99 0.090 4.99 0.100 5.00 0.110 5.00 0.120 5.01 0.130 5.02 0.140 5.02 0.150 5.03 0.160 5.03 0.170 5.04 0.180 5.04 0.190 5.05 0.200 5.05 0.210 5.05 0.220 5.06 0.230 5.06 0.240 5.06 0.250 5.06 0.260 5.07 0.270 5.07 0.280 5.07 0.290 5.07 0.300 5.08 0.310 5.08 0.320 5.08 0.330 5.08 0.340 5.08 0.350 5.09 0.360 5.09 0.370 5.09 0.380 5.10 0.390 5.10 0.400 5.10 0.410 5.10 0.420 5.11 0.430 5.11 0.440 5.11 0.450 5.12 0.460 5.12 0.470 5.12 0.480 5.13 0.490 5.13 0.500 5.13 0.510 5.14 0.520 5.14 0.530 5.14 0.540 5.15 0.550 5.15 0.560 5.16 0.570 5.16 0.580 5.16 0.590 5.17 0.600 5.17 0.610 5.18 0.620 5.19 0.630 5.20 0.640 5.20 0.650 5.21 0.660 5.22 0.670 5.23 0.680 5.24 0.690 5.26 0.700 5.27 0.710 5.28 0.720 5.30 0.730 5.31 0.740 5.32 0.750 5.34 0.760 5.35 0.770 5.36 0.780 5.37 0.790 5.38 0.800 5.39 0.810 5.40 0.820 5.41 0.830 5.43 0.840 5.44 0.850 5.45 0.860 5.47 0.870 5.48 0.880 5.50 0.890 5.53 0.900 5.57 0.910 5.62 0.920 5.68 0.930 5.77 0.940 5.85 0.950 5.98 0.960 6.04 0.970 6.11 0.980 6.27 0.990 10.94 0.999 17.03 0.9999 114.73 1.000 # RAMCloud read throughput of a single server with a varying # number of clients issuing individual reads on randomly # chosen 100-byte objects with 30-byte keys # Generated by 'clusterperf.py readThroughput' # # numClients throughput worker dispatch # (kreads/sec) utiliz. utiliz. #------------------------------------------------ 1 193 0.147 0.015 2 363 0.315 0.237 3 509 0.457 0.420 4 656 0.589 0.625 5 797 0.738 0.886 6 871 0.816 0.975 7 925 0.867 0.998 8 924 0.859 1.000 9 950 0.878 1.000 10 968 0.897 1.000 11 971 0.899 1.000 12 970 0.896 1.000 13 966 0.897 1.000 14 965 0.895 1.000 # RAMCloud read performance for 100 B objects # with keys of various lengths. # Generated by 'clusterperf.py readVaryingKeyLength' # # Key Length Latency (us) Bandwidth (MB/s) #---------------------------------------------------------------------------- 1 4.8 20.0 5 4.8 20.8 10 4.8 22.0 15 4.8 23.1 20 4.8 23.9 25 4.8 24.9 30 4.8 25.7 35 4.8 26.8 40 4.8 27.6 45 4.8 28.6 50 4.9 29.3 55 4.9 30.3 60 4.9 31.3 65 4.9 32.0 70 4.9 33.2 75 4.9 33.8 80 4.9 34.9 85 5.0 35.6 90 5.0 36.4 95 5.0 37.3 100 5.0 38.3 200 5.7 49.8 300 5.9 65.1 400 5.9 80.7 500 6.1 94.3 600 6.1 108.8 700 6.3 121.0 800 6.4 133.4 900 6.6 145.2 1000 6.8 153.4 2000 8.8 227.4 3000 9.9 300.0 4000 10.3 379.1 5000 11.2 433.6 6000 12.4 470.6 7000 13.0 520.5 8000 13.7 564.9 9000 14.5 600.4 10000 16.3 592.3 20000 23.9 801.9 30000 31.9 899.6 40000 42.6 898.0 50000 51.3 930.8 60000 60.2 952.1 # RAMCloud write performance for 100 B objects # with keys of various lengths. # Generated by 'clusterperf.py writeVaryingKeyLength' # # Key Length Latency (us) Bandwidth (MB/s) #---------------------------------------------------------------------------- 1 15.0 6.4 5 15.0 6.7 10 15.1 7.0 15 15.1 7.3 20 15.0 7.6 25 14.9 8.0 30 15.1 8.2 35 15.2 8.5 40 15.0 8.9 45 15.2 9.1 50 15.3 9.4 55 14.6 10.2 60 14.6 10.4 65 14.5 10.8 70 14.5 11.2 75 14.7 11.4 80 14.6 11.8 85 14.7 12.0 90 14.7 12.3 95 14.8 12.5 100 14.8 12.8 200 15.3 18.7 300 15.6 24.4 400 16.4 29.1 500 16.9 33.9 600 17.4 38.4 700 18.3 41.7 800 19.2 44.8 900 20.7 46.1 1000 22.8 46.1 2000 28.9 69.4 3000 33.1 89.4 4000 36.8 106.3 5000 41.3 117.9 6000 43.3 134.2 7000 47.8 141.5 8000 52.1 148.3 9000 56.3 154.2 10000 61.1 157.7 20000 106.4 180.2 30000 151.8 189.2 40000 199.9 191.3 50000 253.6 188.4 60000 294.9 194.3 # RAMCLOUD index write, overwrite, lookup+readHashes, and IndexLookup class performance with a varying number of objects # and a B+ tree fanout of 16. All keys are 30 bytes and the value of the object is fixed to be 100 bytes. Read and Overwrite # latencies are measured by randomly reading and overwriting 1000 objects already inserted into the index at size n. # In a similar fashion, write latencies are measured by deleting an existing object and then immediately re-writing. # All latency measurements are printed as 10th percentile/ median/ 90th percentile. # # Generated by 'clusterperf.py indexBasic' # # n write latency(us) overwrite latency(us) hash lookup(us) lookup+read(us) IndexLookup(us) IndexLookup overhead #-------------------------------------------------------------------------------------------------------------------------------------------------------- 1 30.9/ 31.9/ 34.7 33.1/ 33.7/ 35.5 5.6/ 5.7/ 5.9 12.0/ 12.1/ 12.4 12.6/ 12.8/ 13.5 0.62/ 0.70/ 1.13 10 32.4/ 33.2/ 36.0 33.8/ 34.4/ 36.1 5.6/ 5.7/ 5.9 12.0/ 12.1/ 12.4 12.6/ 12.7/ 13.4 0.56/ 0.59/ 1.02 100 33.1/ 33.9/ 37.2 34.3/ 35.0/ 36.9 6.0/ 6.1/ 6.3 12.4/ 12.6/ 12.9 13.4/ 13.8/ 14.7 1.07/ 1.27/ 1.79 1000 33.1/ 34.1/ 36.7 33.8/ 34.9/ 44.9 6.4/ 6.5/ 6.8 12.6/ 12.8/ 13.4 13.1/ 13.5/ 14.2 0.48/ 0.69/ 0.81 10000 33.5/ 34.4/ 36.9 34.1/ 35.0/ 45.4 6.8/ 6.9/ 7.4 13.0/ 13.3/ 13.8 13.6/ 14.1/ 14.8 0.58/ 0.80/ 0.93 100000 33.6/ 34.4/ 36.4 34.2/ 35.1/ 44.6 7.1/ 7.3/ 7.5 13.4/ 13.6/ 14.2 13.9/ 14.3/ 14.7 0.43/ 0.64/ 0.56 1000000 33.9/ 34.9/ 36.7 34.7/ 35.7/ 46.2 7.5/ 7.6/ 8.0 13.9/ 14.1/ 14.6 14.2/ 14.6/ 15.2 0.34/ 0.54/ 0.60 # RAMCloud write/overwrite performance for random object # insertion with a varying number of secondary keys. The # IndexBtree fanout is 16 and the size of the table is fixed # at 1000 objects, each with a 100 byte value, a 30 byte primary # key, and an additional 30 bytes per secondary key. After # filling the table with 1000 objects in a random order, this test # will overwrite, erase, and re-write 1000 pre-exiting objects to # measure latency. The latency measurements are printed as # 10th percentile/ median/ 90th percentile # # Generated by 'clusterperf.py indexMultiple' # # Sec. keys/obj write latency (us) overwrite latency (us) #---------------------------------------------------------------------- 0 14.3/ 14.7/ 16.2 14.9/ 15.2/ 16.3 1 31.7/ 32.6/ 35.4 32.0/ 32.8/ 37.2 2 34.0/ 35.0/ 38.0 34.1/ 35.0/ 44.2 3 34.8/ 35.8/ 39.3 34.6/ 35.3/ 44.2 4 35.1/ 36.1/ 39.1 35.5/ 36.2/ 43.0 5 37.4/ 38.9/ 42.5 38.2/ 39.6/ 48.5 6 37.2/ 38.6/ 44.7 38.1/ 39.2/ 49.2 7 38.1/ 40.8/ 44.7 38.7/ 41.5/ 48.9 8 39.3/ 40.7/ 46.9 40.0/ 41.2/ 51.7 9 41.3/ 43.6/ 47.8 42.0/ 44.1/ 51.0 10 41.0/ 42.1/ 48.6 41.7/ 42.8/ 53.9 # RAMCloud transaction performance for 100 B objects with 30 byte keys # located on a single master. # Generated by 'clusterperf.py transaction_oneMaster' # # Num Objs Num Masters Objs/Master WriteObjs/Master Latency (us) Latency/Obj (us) #------------------------------------------------------------------------------------------ 1 1 1 1 18.9 18.89 2 1 2 2 22.8 11.38 3 1 3 3 26.5 8.83 4 1 4 4 32.4 8.11 5 1 5 5 34.1 6.81 6 1 6 6 37.3 6.22 7 1 7 7 40.3 5.76 8 1 8 8 44.2 5.53 9 1 9 9 48.7 5.41 10 1 10 10 52.3 5.23 20 1 20 20 88.7 4.44 30 1 30 30 126.9 4.23