Skip to content

Benchmark

louyuting edited this page Jun 1, 2020 · 10 revisions

测试环境

CPU:Intel(R) Xeon(R) CPU E5-2640 v3 @ 2.60GHz (32 Cores) OS:Red Hat 4.8.2-16 golang version: 1.14.3

吞吐量对比

测试单线程/多线程模式下接入 Sentinel 与不接入 Sentinel 吞吐量的对比。我们通过执行一些 CPU 密集型操作(小数组排序)来模拟不同 QPS 下的情况。测试例子参考:

单线程吞吐量

Benchmark_Single_Directly_50-32         	 1000000	      1187 ns/op	      32 B/op	       1 allocs/op
Benchmark_Single_StatEntry_50-32        	  311342	      5670 ns/op	     352 B/op	       9 allocs/op
Benchmark_Single_Directly_100-32        	  307274	      3667 ns/op	      32 B/op	       1 allocs/op
Benchmark_Single_StatEntry_100-32       	  121216	      8795 ns/op	     352 B/op	       9 allocs/op
Benchmark_Single_Directly_200-32        	  124702	      8440 ns/op	      32 B/op	       1 allocs/op
Benchmark_Single_StatEntry_200-32       	   75883	     14862 ns/op	     352 B/op	       9 allocs/op
Benchmark_Single_Directly_500-32        	   43726	     27347 ns/op	      32 B/op	       1 allocs/op
Benchmark_Single_StatEntry_500-32       	   33559	     33363 ns/op	     353 B/op	       9 allocs/op
Benchmark_Single_Directly_1000-32       	   19476	     51843 ns/op	      32 B/op	       1 allocs/op
Benchmark_Single_StatEntry_1000-32      	   16401	     63084 ns/op	     353 B/op	       9 allocs/op
Benchmark_Single_Directly_2000-32       	    9606	    118087 ns/op	      32 B/op	       1 allocs/op
Benchmark_Single_StatEntry_2000-32      	    8912	    116003 ns/op	     354 B/op	       9 allocs/op
Benchmark_Single_Directly_4000-32      	            4807	    242000 ns/op	      37 B/op	       1 allocs/op
Benchmark_Single_StatEntry_4000-32     	            4739	    274000 ns/op	     360 B/op	       9 allocs/op
数组长度 Baseline(QPS) With Sentinel(QPS) 性能损耗
50 1000000 311342 68.9%
100 307274 121216 60.6%
200 124702 75883 39.1%
500 43726 33559 23.3%
1000 19476 16401 15.8%
2000 9606 8912 7.2%
4000 4807 4739 1.4%

多线程影响

Benchmark_Directly_Concurrency4-32      	 2005906	       618 ns/op	      32 B/op	       1 allocs/op
Benchmark_StatEntry_Concurrency4-32     	 1576730	       664 ns/op	     352 B/op	       9 allocs/op
Benchmark_Directly_Concurrency8-32      	 2957827	       594 ns/op	      32 B/op	       1 allocs/op
Benchmark_StatEntry_Concurrency8-32     	 1493346	       685 ns/op	     352 B/op	       9 allocs/op
Benchmark_Directly_Concurrency16-32     	 2939598	       593 ns/op	      32 B/op	       1 allocs/op
Benchmark_StatEntry_Concurrency16-32    	 1450534	       713 ns/op	     352 B/op	       9 allocs/op
Benchmark_Directly_Concurrency32-32     	 2778534	       601 ns/op	      32 B/op	       1 allocs/op
Benchmark_StatEntry_Concurrency32-32    	 1384327	      1095 ns/op	     353 B/op	       9 allocs/op
Clone this wiki locally