关于spring boot tomcat参数配置

https://www.cnblogs.com/softidea/p/5750791.html

一个socket对应一个线程【业务含义上的线程】。但这个线程不要求一定是新建的,因为会使用线程池。

请求 :HTTP领域的术语,通信方面仍然是socket连接。

server:
  tomcat:
    uri-encoding: UTF-8
    max-threads: 1000
    max-connections: 20000

max-threads:200;
max-connections:10000;

maxThreads(最大线程数):每一次HTTP请求到达Web服务,tomcat都会创建一个线程来处理该请求,那么最大线程数决定了Web服务可以同时处理多少个请求,默认200.

accepCount(最大等待数):当调用Web服务的HTTP请求数达到tomcat的最大线程数时,还有新的HTTP请求到来,这时tomcat会将该请求放在等待队列中,这个acceptCount就是指能够接受的最大等待数,默认100.如果等待队列也被放满了,这个时候再来新的请求就会被tomcat拒绝(connection refused)。

maxConnections(最大连接数):这个参数是指在同一时间,tomcat能够接受的最大连接数。一般这个值要大于maxThreads+acceptCount。

  • 增加线程是有成本的,JVM中默认情况下在创建新线程时会分配大小为1M的线程栈,所以更多的线程异味着更多的内存;
  • 更多的线程会带来更多的线程上下文切换成本。

对tomcat来说,每一个进来的请求(request)都需要一个线程,直到该请求结束。如果同时进来的请求多于当前可用的请求处理线程数,额外的线程就会被创建,直到到达配置的最大线程数(maxThreads属性值)。如果仍就同时接收到更多请求,这些来不及处理的请求就会在Connector创建的ServerSocket中堆积起来,直到到达最大的配置值(acceptCount属性值)。至此,任何再来的请求将会收到connection refused错误,直到有可用的资源来处理它们。

这里我们关心的是tomcat能同时处理的请求数和请求响应时间,显然Connector元素的maxThreads和acceptCount属性对其有直接的影响。无论acceptCount值为多少,maxThreads直接决定了实际可同时处理的请求数。而不管maxThreads如何,acceptCount则决定了有多少请求可等待处理。然而,不管是可立即处理请求还是需要放入等待区,都需要tomcat先接受该请求(即接受client的连接请求,建立socketchannel),那么tomcat同时可建立的连接数(maxConnections属性值)也会影响可同时处理的请求数。

官网https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#common-application-properties,可以看到全部的配置信息。

官方spring boot学习步骤:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-configure-tomcat

参考于:
https://blog.csdn.net/kouwoo/article/details/83898788

https://blog.csdn.net/u012661248/article/details/80748814

https://www.cnblogs.com/softidea/p/5750791.html

压力测试的描述一般包括两个部分,即并发用户数和总请求数,也就是模拟多少用户同时向服务器发送多少请求。

请求性质则是对请求的URL所代表的资源的描述,比如1KB大小的静态文件,或者包含10次数据库查询的动态内容等。

1、 并发用户数

并发用户数就是指在某一时刻同时向服务器发送请求的用户总数。

假如100个用户同时向服务器分别进行10次请求,与1个用户向服务器连续进行1000次请求。两个的效果一样么?

一个用户向服务器连续进行1000次请求的过程中,任何时刻服务器的网卡接受缓存区中只有来自该用户的1个请求,而100个用户同时向服务器分别进行10次请求的过程中,服务器网卡接收缓冲区中最多有100个等待处理的请求,显然这时候服务器的压力更大。

经常有人说某个Web服务器能支持多少并发数,除此之外没有任何上下文,这让很多人摸不着头脑,人们常常把并发用户数和吞吐率混淆,他们并不是一回事。

一个服务器最多支持多少并发用户数呢?

我们可以说,这个柜台支持的最大并发数为10,因为恰好在这个并发数下,柜台业务开展的非常成功。顾客们都对服务时间非常满意,而此时代表业务办理次数的柜台吞吐率也比较高,商场和顾客们实现双赢。

可见,通常所讲的最大并发数是有一定利益前提的,那就是服务器和用户双方所期待的最大收益,服务器希望支持高并发数及高吞吐率,而用户不管那么多,只希望等待较少的时间,或者得到更快的下载速度。

所以得出最大并发数的意义,在于了解服务器的承载能力,并且结合用户规模考虑适当的扩展方案。

对于同一域名下URL的并发下载数是有最大限制的,具体限制视浏览器的不同而不同。 一个真实的用户可能会给服务器带来两个或更多的并发用户的压力,一些高明的用户还可以通过一些方法来修改浏览器的并发数限制。

参考:
https://www.cnblogs.com/cnmenglang/p/6272762.html

猜你喜欢

转载自blog.csdn.net/yangyangrenren/article/details/91077999