最新消息:时间抓起来说是金子,抓不住就是流水。

Tomcat性能优化

TomCat 老子黑牵翻 6351浏览 0评论

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

转载请注明:LINUX服务器运维架构技术分享 » Tomcat性能优化

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址