1、使用Nio
打开server.xml
找到:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改为:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443" />
2、tomcat参数优化
去掉这里的注释,并把maxThreads和minSpareThreads值改大
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="500" minSpareThreads="8" />
以及修改
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
maxHttpHeaderSize="8192"
useBodyEncodingForURI="true"
executor="tomcatThreadPool"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
redirectPort="8443" disableUploadTimeout="true" />
port:Tomcat服务器监听的端口号
maxHttpHeaderSize:Http的Header的最大限制
enableLookups="false" 使用允许DNS查询,通常情况下设置为false
redirectPort 服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
executor="tomcatThreadPool" 连接器使用的线程池的名子
acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。
connectionTimeout 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
minSpareThreads Tomcat初始化时创建的线程数。
maxSpareThreads 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
compression="on" 打开压缩功能
compressionMinSize 启用压缩的输出内容大小,这里面默认为2KB
compressableMimeType压缩类型
3、改变JVM的内存大小
vi /usr/local/tomcat/bin/catalina.sh
添加
JAVA_OPTS='-server -Xms512m -Xmx1024m -XX:PermSize=64m -XX:MaxPermSize=128m'
4、TOMCAT实现热部署
进入$TOMCAT_HOME/conf/server.xml
看到你tomcat每个项目就是一个Host
如:
<Host name="www.ileiming.com" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="ROOT" docBase="/usr/local/tomcat/webapps"></Context>
</Host>
修改成:
<Host name="www.ileiming.com" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="ROOT" docBase="/usr/local/tomcat/webapps" reloadable="true"></Context>
</Host>
5、TOMCAT用非ROOT帐户启动
新建帐户用户组
groupadd tomcat
useradd -g tomcat tomcat
chown -R tomcat:tomcat /usr/local/tomcat
然后就是启动了,但有一点要注意,就是用非ROOT帐户启动,TOMCAT设置的端口必须大于1024
启动有两种方法,一种就是用服务启动,在服务里找到/usr/local/tomcat/bin/startup.sh
改成 su – tomcat -c /usr/local/tomcat/bin/startup.sh
另外一种启动方式就是直接运行startup.sh
su – tomcat
/usr/local/tomcat/bin/startup.sh
转载请注明:IT运维空间 » linux » Tomcat性能优化
发表评论