Tomcat7优化

目录

1、目的

2、服务资源配置

3、优化配置

3.1 配置 tomcat 管理员账户

 3.2 Tomcat的3种运行模式

3.2.1 启动NIO模式

3.3.1 开启并且使用

3.3.2 参数说明

3.3.3 最佳实践

3.4 连接器(Connector)

3.4.1 通用属性

4 NIO 的具体配置

4.1 最佳实践

5 JVM参数的优化

5.1 JVM 内存模型

5.2 JVM参数

5.3 在tomcat中设置jvm参数

5.3.1 windows

5.3.2 Linux


1、目的

通过优化 tomcat 提高网站的并发能力。

2、服务资源配置

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

3、优化配置

3.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/

 

 3.2 Tomcat的3种运行模式

 1 、 bio

默认的模式,性能非常低下,没有经过任何优化处理和支持.    

2 、 nio(new IO)

利用 java 的异步 io 护理技术,no blocking IO 技术.

3 、 apr

安装起来最困难,但是从操作系统级别来解决异步的 IO 问题,大幅度的提高性能.

3.2.1 启动NIO模式

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

 执行器(线程池)

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

3.3.1 开启并且使用

配置

 

 

 3.3.2 参数说明

 

 

 3.3.3 最佳实践

3.4 连接器(Connector)

Connector 是 Tomcat 接收请求的入口,每个 Connector 有自己专属的监听端口
Connector 有两种:HTTP Connector 和 AJP Connector

3.4.1 通用属性

 

 

 

 

4 NIO 的具体配置

 

 

 

4.1 最佳实践

5 JVM参数的优化

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

5.1 JVM 内存模型

 有如下原因可能导致Full GC:

1.年老代(Tenured)被写满
2.持久代(Perm)被写满
3.System.gc()被显示调用
4.上一次 GC 之后 Heap 的各域分配策略动态变化

5.2 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
11、 补充:---- gc 的日志的设置

5.3 在tomcat中设置jvm参数

5.3.1 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

5.3.2 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"

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xinyi_java

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

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

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

打赏作者

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

抵扣说明:

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

余额充值