如何增加超时,以便在处理响应之前,请求不会超时?
Spring Boot中的Tomcat设置:
server.tomcat.max-connections=2000
server.tomcat.max-threads=200
server.connection-timeout=1200000
每秒的请求在15秒的过程中被提升到300,所有的请求都在下面的gatling(蓝色)中看到。
scn.inject(
constantUsersPerSec(20) during (15),
)
这是由于使用200
工作线程为300个请求提供服务。
控制器是在SpringMVC中编写的,它返回DeferredResult
,执行异步请求处理,因此在处理响应后将恢复响应。
但即使是服务器。连接超时
设置为高位1200000即将结束时有很多503(红色)
> status.find.in(200,304,201,202,203,204,205,206,207,208,209), b 78 (100.0%)
ut actually found 503
加特林。conf也设置为增加超时:
timeOut {
simulation = 8640000 # Absolute timeout, in seconds, of a simulation
}
ahc {
#keepAlive = true # Allow pooling HTTP connections (keep-alive header automatically added)
connectTimeout = 600000 # Timeout when establishing a connection
handshakeTimeout = 600000 # Timeout when performing TLS hashshake
pooledConnectionIdleTimeout = 600000 # Timeout when a connection stays unused in the pool
readTimeout = 600000 # Timeout when a used connection stays idle
#maxRetry = 2 # Number of times that a request should be tried again
requestTimeout = 600000
根据Rcordoval的评论-
检查此属性:spring。mvc。异步的。请求超时=#异步请求处理超时前的时间量
此设置有助于其他gatling配置
spring.mvc.async.request-timeout=1200000
然而,根本原因是,当请求数量很大时,所有工作线程(200)都会忙于上传打开的连接(2000)(控制器将MultipartFile作为参数并返回一个delferredresult)
我认为当请求服务逻辑快而业务逻辑慢(在forkjoin.common池上运行)时,DeferredResult会发光。它不太适合MultiPartFile上传(阻塞和缓慢),当文件大小很大时更是如此,因为响应不会很快恢复(如上面每秒图表中的响应所示,只有在几秒钟后响应才会开始恢复,因为打开的连接是2000而工人只有200)。如果工人增加了,那么无论如何都会降低异步处理的优势。
在这种情况下,请求处理(上传和阻塞)很慢,业务逻辑很快。所以响应正在准备,但是所有的工作线程(200)都忙于服务越来越多的请求,结果响应没有恢复和超时。
可能会为使用DeferredResult的异步处理中的请求服务
和响应恢复
提供单独的池?
这是我的改型类的实例:
想知道如何在Tomcat7中增加并发连接的数量。我做了一些研究,并从apache文档中发现,将值设置为acceptCount、maxConnections和增加maxThreads就可以做到这一点,但当尝试时,我只能提交1000个请求中的500个。下面是server.xml文件中的代码片段- 谢了,西里什。
当我试图从Tomcat服务器上可用的源获取数据时,我的应用程序会超时。我可以看到数据库查询是罪魁祸首,因为它在100秒内发送数据,因为它正在处理大量的数据。我的请求在60秒内超时,导致以下错误 我使用mod_代理从ApacheWeb服务器连接到tomcat服务器。我尝试将SSL连接器的增加到90000毫秒,但仍然请求在60秒内获得超时。我是否缺少任何需要更改的内容,以便增加连接超时。 我正在使用T
我设置了一个密钥库,并从openssl.com.获得了SSL证书。我遵循的确切步骤如下:https://drive.google.com/file/d/0B6PUGo7cBLcDTzdkc0pzT2pTMk0/view?usp=sharing 不幸的是,即使在严格按照tomcat的说明并与客户支持人员合作后,我的https连接也超时了。 tomcat似乎已启动并运行,正在监听端口443,但我不知道
我将我的项目部署到weblogic,我意识到我的连接没有关闭,因为weblogic服务器超载了。 我把它们修好了。但我仍然有同样的问题。在weblogic监控中,活动连接数正在增加,但在数据库(Oracle)中,此连接无效。
我需要你帮忙解决这个问题 这是我在linux服务器上的的结果 现在这是我的MongoDB的结果 我想将MongoDb连接增加到10000个。 我尝试过不同的选择,比如我的mongod1。形态 这也是在启动mongodb的时候 但是什么都没用,都失败了,请让我知道如何在我的情况下将连接数增加到10000,提前谢谢。