一、启动参数优化
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