性能相关记录
1、打印gc日志
在tomcat/bin/catalina.sh的JAVA_OPTS中添加:
-XX:+UseG1GC
-XX:G1HeapRegionSize=2m
-XX:MaxGCPauseMillis=10 -Ddruid.registerToSysProperty=true
-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails
-Xloggc:../logs/tomcat_gc.log
JAVA_OPTS="-server -Xms4096m -Xmx4096m -XX:MinMetaspaceFreeRatio=40 -XX:MaxMetaspaceFreeRatio=70 -XX:-UseLargePagesInMetaspace -XX:+UseG1GC -XX:G1HeapRegionSize=2m -XX:MaxGCPauseMillis=10 -Ddruid.registerToSysProperty=true -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:../logs/tomcat_gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=../log/serverDump.hprof -XX:-OmitStackTraceInFastThrow"
2、元空间参数metaspace不用设置,它会自动扩展,jdk1.8默认是20.8M,如果设置了可能会出现OOM(
-XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m
)
3、压测时要关闭redis的RDB,默认是开启的,因为开启后快照时会停止处理事务,会报错
参考:https://www.cnblogs.com/java-zhao/p/5205768.html
4、tomcat调优
conf中的server.xml文件中放开线程池
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="8000" minSpareThreads="200"/>
<Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol"
connectionTimeout="2000" maxThreads="800"
redirectPort="18443" URIEncoding="utf-8" compression="on"
compressionMinSize="50" noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/javascript"/>
参考:https://www.cnblogs.com/lyc88/articles/11319400.html
5、Linux查看物理CPU个数、核数、逻辑CPU个数
CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数
查看CPU信息(型号) [root@AAA ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 24 Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz # 查看物理CPU个数 [root@AAA ~]# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 2 # 查看每个物理CPU中core的个数(即核数) [root@AAA ~]# cat /proc/cpuinfo| grep "cpu cores"| uniq cpu cores : 6 # 查看逻辑CPU的个数 [root@AAA ~]# cat /proc/cpuinfo| grep "processor"| wc -l 24
top命令后按1可查看总物理核数