我的项目是基于spring-cloud gateway做服务转发和鉴权的,融合了spring security 的资源服务器:
2台机器(2核4G):分别部署两台应用gateway、auth
在我测试的是时候发现gateway的cpu打满了,但是auth的cpu只到100
感觉就不太正常,我拿普通的gateway项目跑了一下
8082端口是普通的gateway项目转发的,能到将近2000,auth的单机应用跑正常情况就是2000
auth.png
auth.png
从上面的请求结果来看,auth应用的单机cpu打满的情况,qps在2000
但是经过我自己的gateway,测算的只能到500左右,差距基本上是4倍,而且gateway的cpu是被打满的
我的gateway.png
经过多方核实问题,,qps无法上去,如果日志同步打印时需要占用reactor-http-nio线程的资源的导致io线程无法处理更多的io请求。
后经过调整,将日志调整成为异步以后gateway的性能转发的性能大概能到1800,基本满足要求,符合官网说的30%左右的性能损耗
更改后的gateway.png
网友评论