一、springboot项目优化之内嵌服务器调优
一、springboot项目优化之内嵌服务器调优
1、Spring boot 弃用tomcat 作为内嵌服务器,转用undertow
maven添加pom文件如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<!-- 移除tomcat依赖 -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 添加undertow依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
gradle添加配置如下:
configurations {
compile.exclude module: "spring-boot-starter-tomcat"
}
compile "org.springframework.boot:spring-boot-starter-undertow:$springBootVersion"
2、在spring boot配置文件中application.yml,添加以下配置:
tomcat配置如下:
server:
tomcat:
min-spare-threads: 20
max-threads: 100
connection-timeout: 5000
undertow配置如下:
server:
undertow:
io-threads: 4
worker-threads: io-threads * 8
undertow配置io-threads 好理解,根据CPU有几核,就填写几,worker-threads默认最少会初始化24个线程,最多60个线程。worker-threads要看服务器最大支持的文件句柄数量,设太大应用都会启动失败的,结合你应用承担的体量根据服务器负载来设置。
二、springboot项目优化之JVM启动参数优化
一、springboot项目优化之JVM启动参数优化
1、使用-server模式
设置JVM使用server模式,64位JDK默认启动该模式
java -server -jar springboot-1.0.jar
2、指定堆参数
这个根据服务器的内存大小,来设置堆参数。
<1>、-Xms :设置Java堆栈的初始化大小
<2>、-Xmx :设置最大的java堆大小
java -server -Xms512m -Xmx768m -jar springboot-1.0.jar
$ java -jar -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC springboot-1.0.jar