一、启动参数优化

1.1、对于JDK1.8,元数据内存参数配置如下:

-XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=512M

1.2、堆内存配置建议如下:

-Xms=4096m -Xmx=4096m

将-Xms和-Xmx的值设置成相同,一般情况下设置成2G=2048m,根据实际情况,可调整为3G=3072m,或4G=4096m,不要调整过高。

1.3、打印GC日志

-XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=8 -XX:G1HeapRegionSize=4m -XX:ConcGCThreads=8 -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=200M​

1.4、元数据空间调优

正常情况下使用256M和512M的配置,但是特殊的应用,也还是可以通过以下命令判定合理性:

jstat -gc pid

其中的MC为元数据空间分配容量,MU为元数据内存使用量。在内存不紧张的情况下,可将MetaspaceSize适当调大。​

1.5、以下是生产上的示例:

nohup java  -server -Xms4096m -Xmx4096m -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=512M -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:/home/syniapp/sb_UnionService/logs/gc.log -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=8 -XX:G1HeapRegionSize=4m -XX:ConcGCThreads=8 -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=200M -Dspring.config.location=conf/application.properties -jar 你的jar包服务.jar  >> logs/start.log &

二、数据库连接池参数

database.dataSource.initialSize=30

database.dataSource.maxActive=110

database.dataSource.minIdle=30

database.dataSource.maxIdle=60

三、微服务优化参数

​#请求最大size

spring.servlet.multipart.max-file-size=20MB

spring.servlet.multipart.max-request-size=20MB

#Tomcat post请求最大size

server.tomcat.max-http-post-size=20971520

#Tomcat 最大并发

server.tomcat.max-threads=1000

#Tomcat uri编码

server.tomcat.uri-encoding=UTF-8

#接收队列长度

server.tomcat.accept-count=1000

#设置连接超时

server.connection-timeout=20000

# minSpareThreads:初始化时创建的socket线程数,默认值:10。

server.tomcat.min-spare-threads=100

# maxConnections:接受和处理的最大连接数,默认值:10000。

server.tomcat.max-connections=15000

#http头信息最大byte

server.max-http-header-size=8192

#关闭请求资源路径映射异常不抛出

spring.mvc.throw-exception-if-no-handler-found=true

spring.resources.add-mappings=false