tomcat7优化

目的

通过优化tomcat题号网站的并发能力。

服务器资源

服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响。

优化配置

配置tomcat管理员帐户

在conf/tomcat-user.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/

tomcat的三种运行模式

tomcat运行模式有三种

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

修改server.xml里的Connector节点,修改protocol为org.apache.coyote.http11.Http11NioProtocol
在这里插入图片描述
在这里插入图片描述

执行器(线程池)

在tomcat中每一个用户请求都是一个线程,所以可以使用线程池提高性能。

开启并使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参数说明

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最佳实战

在这里插入图片描述

连接器(Connector)

Connector是tomcat接收请求的入口,每个Connector有自己专属的监听端口

Connector有两种:Http Connector和AJP Connector,如下图
在这里插入图片描述

通用属性

在这里插入图片描述

标准实现

除了上面列出的常见的连接器属性,标准的HTTP连接器(BIO、NIO和APR/native)都支持以下属性。

NIO的具体配置
最佳实战

在这里插入图片描述

禁用AJP连接器

AJP(Apache JServer Protocol)

AJPv13协议是面向包的。WEB服务器和Servlet容器通过TCP连接来交互;为了节省SOCKET创建的昂贵代价,WEB服务器会尝试维护一个永久TCP连接到servlet容器,并且在多个请求和响应周期过程会重用连接。
在这里插入图片描述
我们一般是使用Nginx+tomcat的架构,所以用不着AJP协议,所以把AJP连接器禁用。
在这里插入图片描述
在管理界面中看不到ajp了。
在这里插入图片描述

JVM参数优化

适当调整tomcat的运行JVM参数可以提升整体性能。

JVM内存模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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 –XX:+DisableExplicitGC”​

参数说明

1file.encoding 默认文件编码
2-Xmx1024m 设置JVM最大可用内存为1024MB
3-Xms1024m 设置JVM最小内存为1024MB。此值可以设置与-Xmx相同,以避免每次垃圾回收完毕之后JVM重新分配内存。
4-XX:NewSize 设置年轻代大小
5-XX:MaxNewSize 设置最大的年轻代大小
6-XX:PermSize 设置永久代大小
7-XX:MaxPermSize 设置最大永久代大小
8-XX:NewRatio=4 设置年轻代(包括Eden和两个Survivor区)与终身代的比值(除去永久代)。设置为4,则年轻代与终身代所占比值为14,年轻代占整个堆栈的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:+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”

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

9.冄2.7.號

你的鼓励将是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值