tomcat优化

        通过优化tomcat提高网站的并发能力,服务器所能提供CPU,内存,硬盘的性能对处理能力有决定性影响.本文通过优化配置,禁用AJP连接器,JVM参数的优化三个方面来讲解tomcat优化.


1.优化配置

1)配置tomcat管理员账户

在conf/ tomcat-users.xml下添加用户:
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="admin"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="tomcat" roles="admin-gui,admin,manager-gui,manager"/>

启动tomcat,登录查看信息:
http://127.0.0.1:8080/



2)tomcat的3种运行模式
   tomcat的运行模式有3种:
     1、 bio
     默认的模式,性能非常低下,没有经过任何优化处理和支持.
     2、 nio
     利用java的异步io护理技术,no blocking IO技术.
     3、 apr
     安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能.
(1)启动NIO模式

修改server.xml里的Connector节点,修改protocol为org.apache.coyote.http11.Http11NioProtocol







3)执行器(线程池)

在tomcat中每一个用户请求都是一个线程,所以可以使用线程池提高性能。
(1)开启并且使用
配置:



实践:


参数说明:
 maxThreads(最大线程数)
 minSpareThreads(最小活跃线程数)
 maxQueueSize(最大的等待队里数,超过则请求拒绝)
 prestartminSpareThreads(是否在启动时就生成minSpareThreads个线程)
4)连接器(connector)



2.禁用AJP连接器

AJP(Apache JServer Protocol)
AJPv13协议是面向包的。WEB服务器和Servlet容器通过TCP连接来交互;为了节省SOCKET创建的昂贵代价,WEB服务器会尝试维护一个永久TCP连接到servlet容器,并且在多个请求和响应周期过程会重用连接。
我们一般使用Nginx+tomcat的架构,所以用不着AJP协议,所以把AJP连接器禁用.



3.JVM参数的优化
适当调整tomcat的运行JVM参数可以提升整体性能.
修改文件:bin/catalina.sh

JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewRatio=2 -XX:MaxTenuringThreshold=50 -XX:+DisableExplicitGC"

参数说明:
1、	file.encoding 默认文件编码
2、	-Xmx1024m  设置JVM最大可用内存为1024MB
3、	-Xms1024m  设置JVM最小内存为1024m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
4、	-XX:NewSize  设置年轻代大小
5、	XX:MaxNewSize 设置最大的年轻代大小
6、	-XX:PermSize  设置永久代大小
7、	-XX:MaxPermSize 设置最大永久代大小
8、	-XX:NewRatio=4:设置年轻代(包括Eden和两个Survivor区)与终身代的比值(除去永久代)。设置为4,则年轻代与终身代所占比值为1:4,年轻代占整个堆栈的1/5
9、	-XX:MaxTenuringThreshold=0:设置垃圾最大年龄,默认为:15。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论。
10、	-XX:+DisableExplicitGC这个将会忽略手动调用GC的代码使得 System.gc()的调用就会变成一个空调用,完全不会触发任何GC

在tomcat中设置JVM参数
windows中:
修改bin/catalina.bat文件设置参数(第一行)
set JAVA_OPTS=-Dfile.encoding=UTF-8 -server -Xms1024m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC


linux中:
修改bin/catalina.sh文件参数(第一行)
JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms1024m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC"



评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值