Open bingoogolapple opened 7 years ago
查看 Tomcat 进程
jps -v | grep 8000
JVM执行时使用哪些参数以及其各参数默认值
java -XX:+PrintFlagsFinal -version
java -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+PrintFlagsFinal -version
后面花括号里面有product的表示可以在启动参数中设置的,花括号里面是“product rw”的表示你还可以在jvm启动后使用类似下面的命令来设置这些参数
jinfo -flag -PrintHeapAtGC=true <pid>
maxThreads -> 客户请求最大线程数。默认值为 200
minSpareThreads -> 初始化时创建的 socket 线程数。默认值为 10
maxSpareThreads -> 连接器的最大空闲 socket 线程数,一旦超过,就关闭不再需要的 socket 线程,在 Tomcat8 中好像已经没有这个参数了
acceptAccount -> 监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads )
minProcessors -> 服务器创建时的最小处理线程数
maxProcessors -> 服务器同时最大处理线程数
connectionTimeout -> 连接超时。默认值为 20000
enableLookups -> 若设为true, 则支持域名解析,可把 ip 地址解析为主机名。默认为 false
redirectPort -> 在需要基于安全通道的场合,把客户请求转发到基于 SSL 的 redirectPort 端口
URIEncoding -> URL统一编码
Tomcat8 中默认就是用的 nio
<Connector
port="8000"
redirectPort="8443"
protocol="HTTP/1.1"
maxThreads="300"
minSpareThreads="25"
maxSpareThreads="75"
minProcessors="5"
maxProcessors="1000"
acceptCount="300"
connectionTimeout="20000"
useURIValidationHack="false"
enableLookups="false"
URIEncoding="UTF-8"
disableUploadTimeout="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image/jpg,image/png"
/>
性能调优
JVM 调优
前两个目前是相悖的,要想 GC 时间小必须要一个更小的堆,要保证 GC 次数足够少,必须保证一个更大的堆,我们只能取其平衡
JVM 调优 了解JVM的内存管理与垃圾回收 JVM Garbage Collection JVM Options For GC JVM内存JAVA_OPTS参数 JVM 监控工具介绍 关键业务系统的JVM参数推荐(2016热冬版)