写在前面
Tomcat作为最常用的Java Web服务器,随着并发量越来越高,Tomcat的性能会急剧下降,那有没有什么方法来优化Tomcat在高并发环境下的性能呢?
Tomcat运行模式
Tomcat的运行模式有3种。
1.bio模式
默认的模式,性能非常低下,没有经过任何优化处理和支持。
2.nio模式
利用java的异步io护理技术,noblocking IO技术。要想运行在该模式下,则直接修改server.xml里的Connector节点,修改protocol为如下配置。
![](https://img.haomeiwen.com/i27938870/ae5b6f8c595ce878.png)
重启Tomcat后,就可以生效。
3.apr模式
安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能。此种模式下,必须要安装apr和native,直接启动就支持apr。如nio修改模式,修改protocol为
org.apache.coyote.http11.Http11AprProtocol,如下所示。
![](https://img.haomeiwen.com/i27938870/e32c6badf5cd5fab.png)
Tomcat并发优化
安装APR
![](https://img.haomeiwen.com/i27938870/ea782e8b9c600d36.png)
安装成功后还需要对tomcat设置环境变量,方法是在catalina.sh文件中增加1行:
在这段代码下面添加:
![](https://img.haomeiwen.com/i27938870/eaf46f174e08798f.png)
修改server.xml的配置,如下所示。
![](https://img.haomeiwen.com/i27938870/4d2367d27efdfb3c.png)
Tomcat优化
1.JVM 调优
在
TOMCAT_HOME/bin/catalina.sh 增加如下语句,具体数值视情况而定。添加到上面CATALINA_OPTS的后面即可,如下所示。
JAVA_OPTS=-Xms512m -Xmx1024m -XX:PermSize=512M -XX:MaxNewSize=1024m -XX:MaxPermSize=1024m
参数详解
-Xms:JVM初始化堆内存大小。
-Xmx:JVM堆的最大内存。
-Xss:线程栈大小。
-XX:PermSize:JVM非堆区初始内存分配大小。
-XX:MaxPermSize:JVM非堆区最大内存。
建议和注意事项:
-Xms和-Xmx选项设置为相同堆内存分配,以避免在每次GC 后调整堆的大小,堆内存建议占内存的60%~80%;非堆内存是不可回收内存,大小视项目而定;线程栈大小推荐256k。
32G内存配置如下:
JAVA_OPTS=-Xms20480m -Xmx20480m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=2048m
2.关闭DNS反向查询
在<Connector port=”8080″ 中加入如下参数。
enableLookups=”false”
3.优化tomcat参数
在server.xml文件中进行如下配置。
![](https://img.haomeiwen.com/i27938870/c8f93b7cd904e8fa.png)
写在最后
最后,附上并发编程需要掌握的核心技能知识图,祝大家在学习并发编程时,少走弯路。
![](https://img.haomeiwen.com/i27938870/54235d63ac4c3a89.png)
网友评论