发表于: 2019-11-29 23:21:53

1 1284


今天完成的事:
1、调整项目配置。
因为查看昨天测试的日报发现nginx与tomcat相差时间比较多,所以搜索了一下,发现原来是我因为服务器内存不足,只开了一个tomcat,但是nginx中负载均衡时两个tomcat,在请求分配到未开的tomcat时,因为没有设置超时时间,需要等待连接,默认是60秒,所以昨天的测试结果是快的很快,慢的就会很慢。
于是添加超时设置,proxy_connect_timeout为3秒,单位秒。等待连接3秒后,就会分配给另一个tomcat。

还有两个是读取时间设置,这里就用的默认60秒。
这里设置的时间只是读取操作不是指的整个传输过程,而是指两次读取操作间隔不超过的时间。
百度没有答案,感觉应该是数据的传输不是持续的,可能会有断续,这时就是指的两次操作间隔不能超过设置的读取超时时间。
另外upstream还可以设置两个参数,在失败几次后,一段时间内不会分配给该tomcat请求,默认是失败一次后,10秒内不会再有请求。

使用postman测试,测试成功,最慢的也就3秒多,快的几乎60ms左右。
这里为了快点,设置为1秒超时。
服务器开始压测,20线程就有异常。。
20*50线程,这下优势就出来了,但是异常也太多了。。
查看nginx日志,报错502。说是tomcat的响应有问题。

报错说upstream超时,没有存活的有效连接。百度搜索都说是把等待超时的时间设置大一些,那这样就又回去了,响应不异常,但是很慢很慢。
jmeter报错信息。
将超时改为3秒,异常减少,但是很慢。
超时还是3秒,把默认的失败1次改为5次,10秒内不再请求。结果异常大幅降低。速度确实更慢了。

超时改回1秒,默认失败5次,10秒内不再请求。异常又暴涨。
推断,因为只有一个tomcat,应该是再未开的tomcat不接受请求的10秒内,大量的请求堆积到一个tomcat上,造成连接不够用,所以都是异常。
结果:
询问师兄后,单个tomcat本身就是有问题的假设状态,在这个状态下压测自然是没有太好的结果。也就是说,慢是正常的??
之前是因为服务器压测内存不足,只能开一个tomcat,被师兄告知,jmeter的配置修改。才发现之前修改的jmeter配置文件是错误的,也就是减少内存的操作没用,所以内存不足。。下图是我之前修改的jmeter.bat文件,改错了。这里改为原来的1g、1g、256m。

真正修改的是bin目录下的jmeter文件,文件无后缀!!下图为原配置。

改为下图内存配置。并且将之前改的tomcat配置修改回来,nginx里的超时设置也删除。

这里只测试20线程。

而单独访问8080,快了很多。

查看日志,发现只用了一个tomcat端口,另一个单独的运行日志里,有奇怪的jar包解析异常错误,null异常等,但是两个tomcat都是一样的,war包也是一样的。
想到之前断电过,那时在配置tomcat,于是删除,重新解压,修改如下端口。
服务器防火墙开放端口!!




查看80端口,没有占用。

测试20线程,较小的响应时间差不多,大的时间就快了很多。

这里测试下20线程50循环,此时没有设置nginx超时时间,与设置超时3秒,失败5次时的响应时间差不多,就是最大值要大些。

明天计划的事:
1、了解缓存雪崩等相关。
2、本地测试,编写测试报告。
遇到的问题:
钻牛角了,应该本地测试的。
收获:
无,配置调来调去,没什么用。

返回列表 返回列表
评论

    分享到