Tomcat 配置优化

来源:互联网 发布:java对接支付宝流程图 编辑:程序博客网 时间:2024/06/17 15:22

解决中文乱码问题:

server.xml

<Connector port="8080" protocol="HTTP/1.1"   
connectionTimeout="20000"   
redirectPort="8443" URIEncoding="UTF-8"/>

解决修改文件后刷新问题 (可选):

context.xml

<Context reloadable="true">

内存优化:

catalina.sh

在 # ----- Execute The Requested Command ----------------------------------------- 下面增加:

JAVA_OPTS=$JAVA_OPTS -server -Xms2048m -Xmx2048m -XX:PermSize=256M -XX:MaxPermSize=512m -Djava.awt.headless=true

解析:

-server:以server模式运行,效率较高

Xms,Xmx:Java堆内存(heap),设置最小最大堆内存

PermSize,MaxPermSize:存放类定义的区域,包括生成的类及引用的jar包,常见错误java.lang.OutOfMemeorError:PermGen space

注:Java8开始,PermSize被MetaspaceSize代替,MetaspaceSize共享heap,PermSize,MaxPermSize设置将无效,不用设置

 -Djava.awt.headless=true:在linux系统中,使用绘图相关的api时,需要声明为true,否则可能抛出异常

最大连接数优化:

server.xml,修改配置文件为:

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443"

URIEncoding="UTF-8"

maxThreads="500"

minSpareThreads="100"

maxSpareThreads="200"

acceptCount="200"

enableLookups="false"

 />

启动基于异步轮询的nio模式(tomcat8默认使用nio):protocol="org.apache.coyote.http11.Http11NioProtocol"

maxThreads:最大工作线程数

minSpareThreads:最小空闲线程数

maxSpareThreads:最大空闲线程数

acceptCount:允许等待线程数(maxThreads占用完后)

maxThreads + acceptCount = 总的可接受的线程数,超过这个数量,新连接将不被接受,出现http错误

enableLookups:禁用request.getRemoteHost会执行DNS查找,反向解析IP对应的用户主机名

0 0
原创粉丝点击