nginxmetrictag大数据接口响应慢怎么排查与处理

这篇文章主要介绍“nginx metrictag大数据接口响应慢怎么排查与处理”,在日常操作中,相信很多人在nginx metrictag大数据接口响应慢怎么排查与处理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”nginx metrictag大数据接口响应慢怎么排查与处理”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

枣庄ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

一、问题现象

platform调用 queryMetricTagRel 经常会出现超时错误。

注意:这个接口响应大小是118M,这就对网络性能要求很高。

二、问题排查与处理

1、确认是否是接口本身响应慢

通过对nginx日志的排查:

  • 有两台wuhan机房的机器响应平均都在30秒左右,beijing机房的两台机器响应时间几乎都在3秒左右,可见是访问wuhan机器服务时导致的超时。

  • 由于nginx网关部署在beijing机房,而beijing机房的两台服务访问都很快,可见超时主要是因为beijing的nginx访问wuhan的服务耗时比较大的原因。

2、解决

解决一:去除网络的影响。既然wuhan到beijing网络有问题,那就直接把wuhan机房的两台机器去掉即可(beijing能再申请两台机器最好,但是没有机器了)。

但是注意:去掉wuhan的机器之后,所有的请求就都转发到了beijing的两台机器了。

观察:wuhan两台机器去掉之后,发现请求确实变快了,但是一会功夫,又有请求超时了,已经是同区域访问了,超时就不会是网络问题了,那么还可能是什么问题?答案是机器的网卡!

看了下机器的网卡的监控:发现在14点20左右,流量升上去了,是正常的,流量最多到了1.6G左右,但是正常应该是1.8G左右才对,所以考虑是不是机器的网卡被限速了?

带着这个疑问咨询了设备服务提供方得知,确实对机器有限流,每台限制1.6G,限速就会导致多余的请求的响应数据不能及时传输出来,自然就会慢。

而且网卡流量达到上限,可能对入口的请求有影响,导致很多请求都会变慢。

nginx metrictag大数据接口响应慢怎么排查与处理

解决二:升级网卡。针对网卡限流的解决,我们将网卡升级到了3.2G/秒。

但是发现有时候还是会超时,不出意外应该还是网络限制导致的。

解决三:压缩。既然接口响应内容大会出现网卡,网络等问题,可否将响应的数据进行压缩呢?答案是可以的,本项目是spring-boot搭建,框架提供了对响应数据进行压缩的机制,配置的方式:

server.compression.enabled=true  #打开压缩机制
server.compression.mime-types=application/json #对json响应格式进行压缩,压缩为gzip

但是上面的内容只有在客户端指定接受gzip的方式时才会生效,即 Accept-Encoding :gzip

经过简单的测试,gzip之后,压缩后的大小是压缩前的1/8,很可观,大大的降低了网络端的消耗

nginx metrictag大数据接口响应慢怎么排查与处理

效果:压缩前:129KB,耗时532ms

nginx metrictag大数据接口响应慢怎么排查与处理

压缩后:15KB,564ms,耗时差不多(涉及到压缩计算和解压计算,比较耗费CPU),但是Size降低了将近10倍。

nginx metrictag大数据接口响应慢怎么排查与处理

响应:如下 Content-Encoding :gzip说明服务端经过了gzip的压缩方式

nginx metrictag大数据接口响应慢怎么排查与处理

到此,关于“nginx metrictag大数据接口响应慢怎么排查与处理”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


名称栏目:nginxmetrictag大数据接口响应慢怎么排查与处理
文章URL:http://myzitong.com/article/jspegh.html