前言
通过org.springframework.boot.autoconfigure.web.ServerProperties查看,此中包括属性tomcat、jetty、undertow三种服务器的设置,默认启用tomcat。
Tomcat 自身优化
- # Tomcat
- server:
- tomcat:
- uri-encoding: UTF-8
- #最小线程数
- min-spare-threads: 500
- #最大线程数
- max-threads: 2500
- #最大链接数
- max-connections: 6500
- #最大等待队列长度
- accept-count: 1000
- #请求头最大长度kb
- max-http-header-size: 1048576
- #请请求体最大长度kb
- #max-http-post-size: 2097152
- #服务http端口
- port: 8080
- #链接建立超时时间
- connection-timeout: 12000
- servlet:
- #访问根路径
- context-path: /son
复制代码 比力告急的有两个:初始线程数和最大线程数。
初始线程数:保障启动的时候,如果有大量用户访问,能够很稳固的接受哀求。
最大线程数:用来保证系统的稳固性。
其它参数优化:
min-spare-threads:最小备用线程数,tomcat启动时的初始化的线程数。
max-threads:Tomcat可创建的最大的线程数,每一个线程处理一个哀求,超过这个哀求数后,客户端哀求只能排队,等有线程释放才能处理。(发起这个设置数可以在服务器CUP核心数的200~250倍之间)
accept-count:当调用Web服务的HTTP哀求数达到tomcat的最大线程数时,还有新的HTTP哀求到来,这时tomcat会将该哀求放在等候队列中,这个acceptCount就是指能够接受的最大等候数,默认100。如果等候队列也被放满了,这个时候再来新的哀求就会被tomcat拒绝(connection refused)。
max-connections:这个参数是指在同一时间,tomcat能够接受的最大连接数。一般这个值要大于(max-threads)+(accept-count)。
connection-timeout:最长等候时间,如果没有数据进来,等候一段时间后断开连接,释放线程。
UnderTow优化
为什么要变成UnderTow?
我们在相同机器设置下压测Tomcat和Undertow,得到的测试效果如下所示:
Tomcat:
UnderTow:
内存利用对比:
结论:
Undertow在高并发业务场景中,性能优于Tomcat
实现方式:
POM文件移除tomcat换成underTow
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId><!-- 移除掉默认支持的 Tomcat -->
- <exclusions>
- <exclusion>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-tomcat</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-undertow</artifactId>
- </dependency>
复制代码 设置相干参数:
# 是否打开 undertow 日记,默认为 false
server.undertow.accesslog.enabled=false
# 设置访问日记所在目录
server.undertow.accesslog.dir=logs
# 指定工作者线程的 I/0 线程数,默认为 2 大概 CPU 的个数
server.undertow.io-threads=
# 指定工作者线程个数,默认为 I/O 线程个数的 8 倍
server.undertow.worker-threads=
# 设置 HTTP POST 内容的最大长度,默认不做限制
server.undertow.max-http-post-size=0
最后直接main 方法启动Springboot即可。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |