记得最近一次性能性能的问题分享; 项目所有数据都提前刷新到redis集群,主要测试登录接口。
问题1:jmeter中查看到接收的页面报文流量比浏览器显示的结果大很多。
原因:因为请求头没有指定Accept-Encoding;造成nginx无法识别客户端有支持压缩;
解决方案:header中增加Accept-Encoding:gzip,deflate,br
不增加Accept-Encoding时,测试结果如下:
在header中增加Accept-Encoding:gzip,deflate,br,测试结果如下:
对比第一个请求同一个请求,接收流量基本减少快10倍
目前一般系统都是前后端分离;前端使用nginx进行部署。
nginx一般配置打开gzip压缩 ,配置如下:
gzip on;
gzip_min_length 2k;
gzip_buffers 4 32k;
gzip_comp_level 6;
问题2: 登录接口TPS达到标,访问redis达到瓶颈。
第一轮测试结果:登录TPS最大只能达到1400左右
测试发现redis服务器执行命令非常高,每秒命令数达到6万;
减少压力,通过redis,monitor监控实际运行业务时,执行命令情况。发现有大量重复执行命令。需要进行业务优化,优化后TPS有提升到1600,但是redis集群命令还是比较高。测试情况如下: