本文主要是介绍spring cloud zuul性能测试全记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先写了一个简单的controller
@RestController
public class HiController {@Value("${server.port}")String port;@GetMapping("/hi")public String home(@RequestParam String name) {return "hi "+name+",i am from port:" +port;}
}
server:port: 8232tomcat:max-threads: 800max-connections: 1600connection-timeout: 30000
经测试发现CPU的影响较大,1U的时候QPS在4K左右 2U的QPS大概在8k左右,4U的时候QPS大概为11K。
ZUUL受CPU的影响更多,1U只有1k左右,2U大概是2k,4U的时候超过了4k,此时zuul的JVM大小为1G.
将JVM大小修改为2G后4U对应的QPS在4.5k-5k之间,性能大概增长了10%,很奇怪的一点是在打了个电话之后同样的参数测试了一下,居然跑出超过7.5k的QPS,但是第二次就又讲到5k左右的了
调整参数后QPS稳定在5k以上,参数如下:
server:port: 5000tomcat:max-threads: 16 # 最大worker线程min-spare-threads: 8 # 最小worker线程undertow:io-threads: 4 # IO线程数,默认为CPU核心数,最小为2worker-threads: 24 # 阻塞任务线程池,值设置取决于系统的负载,默认为io-threads * 8buffer-size: 512 # 每块buffer的空间大小
zuul:host:max-per-route-connections: 50max-total-connections: 500
尝试修改参数对比
server:port: 5000tomcat:max-threads: 64 # 最大worker线程min-spare-threads: 32 # 最小worker线程
将线程数调大后实际QPS反而降低了,在4k-4.5k之间,也就是说线程数不是越大越好。
server:port: 5000tomcat:max-threads: 8 # 最大worker线程min-spare-threads: 4 # 最小worker线程
此时的QPS首次低于了4k。
以上测试均是在电脑的虚拟机上进行的测试,电脑只有4核,而分给虚拟机了4核,实际的性能应该比此次测试的性能更高。
http://tech.lede.com/2017/05/16/rd/server/SpringCloudZuul/
-Xmx1024m -Xms1024m -Xss256k -XX:-PrintGC -XX:-PrintGCDetails -Xloggc:E:/logs/gc5.log -XX:+PrintGCTimeStamps
这篇关于spring cloud zuul性能测试全记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!