tomcat配置调优记录tomcat
server.xml服务器
<Connector port="8090" protocol="HTTP/1.1" maxHttpHeaderSize="81920" maxThreads="1000" minSpareThreads="100" maxSpareThreads="2000" minProcessors="100" maxProcessors="2000" enableLookups="false" URIEncoding="utf-8" acceptCount="500" redirectPort="8443" connectionTimeout="30000" disableUploadTimeout="true"/>
maxHttpHeaderSize:HTTP请求和响应头的最大量,以字节为单位,默认值为4096字节
maxThreads: 起动的最大线程数,这个值也决定了服务器能够同时响应客户请求的最大数。通常建议在 500 ~ 800,根据硬件设施和业务来判断
minSpareThreads 初始化时建立的线程数
maxSpareThreads 一旦建立的线程超过这个值,Tomcat就会关闭再也不须要的socket线程。
minProcessors 最小的处理线程数,即便没有任何HTTP请求,TOMCAT也保持至少这么多线程以等待处理。
maxProcessors 最大链接线程数,并发处理的最大请求数,
enableLookups 若是为true,则能够经过调用request.getRemoteHost()进行DNS查询来获得远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
acceptCount:当全部可使用的处理请求的线程都被用光时,能够放处处理队列中的请求数,超过这个数的请求将不予处理,而返回Connection refused错误。多线程
Tomcat内存优化主要是对 tomcat 启动参数优化
catalina.sh
JAVA_OPTS参数说明并发
#-server :启用jdk 的 server 版; #-Xmx1024m :设置JVM最大可用内存为1024m #-Xms1024m :设置JVM初始可用内存为1024m #-Xmn384m :设置年轻代大小为384m #-Xss128k :设置每一个线程的堆栈大小为128k #-XX:NewRatio=4 :设置年轻代与年老代的比值为4 #-XX:SurvivorRatio=4 :设置年轻代中Eden区与Survivor区的大小比值为4 #-XX:PermSize=64m :设置堆栈永久区起始大小为64m #-XX:MaxPermSize=128m :设置堆栈永久区最大大小为128m #-XX:MaxTenuringThreshold=0 :设置垃圾最大年龄为0 #-XX:+UseParallelGC :选择垃圾收集器为并行收集器 #-XX:ParallelGCThreads=8 :配置并行收集器的线程数 #-XX:+UseParallelOldGC :配置年老代垃圾收集方式为并行收集 #-XX:+UseAdaptiveSizePolicy :并行收集器会自动选择年轻代区大小和相应的Survivor区比例, 以达到目标系统规定的最低响应时>间或者收集频率等,此值建议使用并行收集器时,一直打开。
JAVA_OPTS=" -server -Xms1024m -Xmx1024m -Xmn384m -XX:PermSize=64m -XX:MaxPermSize=128m -XX:+UseParallelOldGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:/data/tomcat/8082/logs/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/tomcat/8081/heap.bin"