最近项目本地访问和测试服务器访问都没出现访问很慢的问题。
近期要上生产部署,所以对生产环境的组件及各服务进行了部署,部署完成后进行测试发现请求耗时异常
比如一个订单查询请求,第一次请求耗时5m 或者15s 而且很有规律,不多不少,然后后面的请求耗时就会变快
遇到这个异常问题:
1.第一反应感觉像sql缓存的样子,但是生产环境数据库数据量很少,以及druid监控sql耗时很少,所以排除
2.第二反应是生产组件nacos或者sentinel的新部署导致的rpc远程调用耗时,但是观察sentinel远程服务请求耗时并不符合,暂时列为可疑原因
3.第三点是怀疑TCP远程连接数连接数很多导致请求异常,但是netstat观察连接并未异常,暂列为可疑原因
4.第四发现请求访问Druid页面时也会出现耗时异常,以及单服务请求测试也有请求异常,排除2.RPC远程调用异常
5.第五本打算使用arths再查一下,但是看到一篇文章讨论https://www.v2ex.com/t/589114,正好想到前段时间也刚刚使用hutools,按照其方法进行尝试处理
6.可能是外网CDN跳转多次导致,但是我们情况并没有CDN多次跳转,所以排除了
解决:1,首先进行pom排除Hutools依赖,仍有异常 2.排除hutools依赖,并启动命令中设置 -Djava.security.egd=file:/dev/./urandom 后无异常
修订:按以上方法解决后会发现内网请求测试不再出现问题了,但是nginx的https访问仍会出现偶发性5s或15s耗时延迟异常 但是我下午的时候我下载安装jmeter进行https压测的时候,mdzz又没有这个异常情况了。。。头疼,后面如果能解决再补充吧
补充1 :Connect time耗时严重
后来进行将防火墙关闭,调整nginx的cpu使用数,测试虽有所改善,但是还是会偶发性出现5S或者15S耗时,所以本质问题仍未解决。。。
最后迫不得已换了台服务器解决的