Tomcat优化配置方案

Tomcat优化方案,列举如下几点:

1、修改内存配置:

         在Tomcat根目录的bin目录下的catalina.sh首行加入如下配置:

       JAVA_OPTS="-server -Xms1024m -Xmx1024m -XX:PermSize=128M -XX:MaxPermSize=512m"

       其它配置项详解如下:

       -server 一定要作为第一个参数,设置成服务器模式,在多个CPU时性能佳 
       -Xms 堆内存的初始大小,默认是物理内存的1/64,Xms和Xmx设置成一样最优,避免JVM因为频繁GC导致性能大起大落,具体值可根据服务器内存来设置。
       -Xmx 堆内存的最大值,建议均设为物理内存的一半,不可超过物理内存。
       -Xss 每个线程的栈内存大小
       -XX:PermSize 持久代内存初始大小,默认是物理内存的1/64。
       -XX:MaxPermSize 持久代内存最大值,默认是物理内存的1/64。
       -XX:SurvivorRatio=2 设置年轻代Survivor和Eden比例的大小,默认是2,如果垃圾回收变成了瓶颈,您可以尝试定制生成池设置
       -XX:NewSize 年轻代内存的初始大小。
       -XX:MaxNewSize: 年轻代内存的最大值。

       -verbose:gc 现实垃圾收集信息 
       -Xloggc:gc.log 指定垃圾收集日志文件 
       -XX:+AggressiveOpts  当JDK版本升级时,你的JVM都会使用最新加入的优化技术
       -XX:+UseParNewGC 对年轻代使用多线程并行回收,缩短minor收集的时间
       -XX:+CMSParallelRemarkEnabled 在使用UseParNewGC 的情况下, 尽量减少 mark 的时间
       -XX:+UseConcMarkSweepGC 缩短major收集的时间,此选项在堆内存比较大而且Major收集时间较长的情况下使用更合适。
       -XX:+UseCMSCompactAtFullCollection 在使用concurrent gc 的情况下, 防止 memoryfragmention, 对live object 进行整理, 使 memory 碎片减少。
       -XX:LargePageSizeInBytes=128m  指定 Java heap的分页页面大小
       -XX:+UseFastAccessorMethods get,set方法转成本地代码
       -XX:+UseCMSInitiatingOccupancyOnly 指示只有在 oldgeneration 在使用了初始化的比例后concurrent collector 启动收集

          

2、启用高性能模式:

         Tomcat有三种运行模式,BIO(阻塞模式)、NIO(非阻塞模式)、Apr(第三方库),Apr高并发的性能最好,NIO其次,BIO是Tomcat7以下的默认模式,并发性能最低。

       使用NIO模式:

               修改conf/server.xml文件下<Connector ... />标签的protocol属性

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

       使用Apr模式:

               Apr是第三方库,需要安装依赖包,安装步骤如下:

              1)安装apr 
                    tar zxvf apr-1.4.2.tar 
                    cd apr-1.4.2 
                    ./configure --prefix=/usr/local/apr 
                    make 

                    make install 

               2)安装apr-iconv 
                     tar -zxvf apr-iconv-1.2.1.tar.gz 
                     cd apr-iconv-1.2.1 
                     ./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr 
                      make 
                      make install 
                3)安装apr-util 
                     tar zxvf apr-util-1.3.10.tar.gz 
                     cd apr-util-1.3.10 
                     ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-apr-iconv=/usr/local/apr-iconv/bin/apriconv 
                     make 
                     make install
                4)安装tomcat-native 
                     tar zxvf tomcat-native-1.1.20-src.tar.gz 
                     cd tomcat-native-1.1.20-src/jni/native   
                     ./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.6.0_23 
                     make 
                     make install

    修改conf/server.xml文件下<Connector ... />标签的protocol属性:

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

3、配置线程池:

      配置Tomcat的线程池,修改conf/server.xml文件下<Connector ... />标签,加入如下配置: 

        minSpareThreads="100" 最小备用线程数,tomcat启动时的初始化的线程数。

maxSpareThreads="500" 如果空闲状态的线程数多于设置的数目,则将这些线程中止,减少这个池中的线程总数。

      acceptCount="4096" 当线程数达到maxThreads后,后续请求会被放入一个等待队列,这个acceptCount是这个队列的大小,如果这个队列也满了,就直接连接拒绝               

      maxThreads="4096" 创建的最大的线程数,即最大并发数。

      maxProcessors="2000" 服务器创建时最大处理线程数

      minProcessors="5" 服务器创建时最小处理线程数


4、禁用DNS查询:

      禁用DNS查询,反域名查询,即不去查询服务器主机名称信息。

     enableLookups="false"


5、启用压缩:

      对资源进行压缩,提高数据传输速度。

      compression="on" 打开压缩功能

      compressionMinSize="10240" 启用压缩的输出内容大小,默认为2KB 

      noCompressionUserAgents="gozilla,traviata" 对于以下的浏览器,不启用压缩

      compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 哪些资源类型需要压缩


6、其他配置:

      URIEncoding="UTF-8" 指定Tomcat容器的URL编码格式。

      disableUploadTimeout="true" 上传时是否使用超时机制

      connectionTimeout="20000" 连接超时时间

      maxHttpHeaderSize="8192" http请求头信息的最大程度,超过此长度的部分不予处理。一般8K。


      配置示例:

<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
		minSpareThreads="100" maxSpareThreads="500"
		acceptCount="1024" maxThreads="1024" 
		enableLookups="false" disableUploadTimeout="true"
		URIEncoding="UTF-8" connectionTimeout="20000" 
		maxHttpHeaderSize="8192" 
		compression="on"  compressionMinSize="2048" 
		noCompressionUserAgents="gozilla, traviata" 
		compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
		redirectPort="8443"	
	/>

注意:如果走HTTPS协议的话,会用到8443端口的配置,所以8443端口也需要加上同样的配置!!!


7、负载均衡:

      使用nginx做负载均衡,后台部署多个Tomcat服务器,多个应用,均衡分配并发请求数,保证单台Tomcat服务器的并发数量不要过高,保障服务器性能。


......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值