文档章节

Tomcat的三种模式及并发优化

五大三粗
 五大三粗
发布于 2015/03/17 21:57
字数 550
阅读 2774
收藏 21


Tomcat的运行模式有3种
1、bio
默认的模式,性能非常低下,没有经过任何优化处理和支持.

2、nio
利用java的异步io护理技术,noblocking IO技术.
想运行在该模式下,直接修改server.xml里的Connector节点,修改protocol为

<Connector port="80″
protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
URIEncoding=”UTF-8″
useBodyEncodingForURI="true"
enableLookups="false"
redirectPort="8443">

启动后,就可以生效。

3、apr
从操作系统级别来解决异步的IO问题,大幅度的提高性能。
必须要安装apr和native,直接启动就支持apr
修改protocol为org.apache.coyote.http11.Http11AprProtocol

安装apr

yum -y install apr apr-devel

安装native
进入tomcat/bin目录,比如:

cd /usr/local/tomcat/bin/ tar xzfv tomcat-native.tar.gz
cd tomcat-native-1.1.20-src/jni/native/ ./configure --with-apr=/usr/bin/apr-1-config
make && make install

安装完成之后 会出现如下提示信息

Libraries have been installed in: /usr/local/apr/lib

安装成功后还需要对tomcat设置环境变量,方法是在catalina.sh文件中增加1行:

 CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"

修改8080端对应的conf/server.xml

protocol="org.apache.coyote.http11.Http11AprProtocol"

启动tomcat之后,查看日志会有这一行信息,说明已经是APR模式启动了

INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].

并发优化
1.JVM调优
新增文件TOMCAT_HOME/bin/setenv.sh如下语句,具体数值视情况而定。

JAVA_OPTS="-Xms1024m -Xmx1024m -Xss1024K -XX:PermSize=64m -XX:MaxPermSize=128m"

参数详解

-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参数(使用APR)

<Listener className="org.apache.catalina.core.AprLifecycleListener" /> ... <Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol" connectionTimeout="20000" //链接超时时长 redirectPort="8443" maxThreads="500" minSpareThreads="20" acceptCount="1000" enableLookups="false" URIEncoding="UTF-8" />

© 著作权归作者所有

共有 人打赏支持
五大三粗
粉丝 160
博文 2264
码字总数 4712446
作品 0
广州
程序员
私信 提问
加载中

评论(1)

MGL_ONE
MGL_ONE
颜色看着恶心
Tomcat 7优化配置参数

Tomcat的优化主要体现在两方面:内存、并发连接数。 1、内存优化: 优化内存,主要是在bin/catalina.bat/sh 配置文件中进行。linux上,在catalina.sh中添加: JAVA_OPTS="-server -Xms1G -X...

庆沉
2016/10/08
24
0
开启Tomcat APR运行模式,优化并发性能

Tomcat支持三种接收请求的处理方式:BIO、NIO、APR 1>、BIO模式:阻塞式I/O操作,表示Tomcat使用的是传统Java I/O操作(即java.io包及其子包)。Tomcat7以下版本默认情况下是以bio模式运行的,...

woshiluo
06/28
0
0
Tomcat Connector三种运行模式(BIO, NIO, APR)的比较和优化

Tomcat Connector的三种不同的运行模式性能相差很大,有人测试过的结果如下: 这三种模式的不同之处如下: BIO: 一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。 Tomcat7或...

mifans
2016/10/25
15
0
tomcat runing on daemon with apr and ssl mode

前言: 简要介绍下tomcat 的三种运行模式,记录基于apr模式及支持SSL模式的安装方式 环境: 本文主要基于ubuntu 安装tomcat 7,与基于centos并无太大差异,主要差异在于相关依赖包的名称,在...

lylspecter
2017/01/05
0
0
tomcat生产部署关键参数设置

JVM设置 l 一般使用HotSpot JVM。 l 加上-server。 l -Xms/-Xmx:设置Java堆初始化和最大值,默认是1/64物理内存和1/4物理内存,一般不超过物理内存的80%,且这两个应该设置成一样,,够用就...

小湘西
2016/10/17
25
0

没有更多内容

加载失败,请刷新页面

加载更多

deepin中配置robot framework环境

本文永久更新地址:https://my.oschina.net/bysu/blog/2989005 【若要到岸,请摇船:开源中国 不最醉不龟归】 1.在终端中输入pip,回车,如果提示没有该命令,则先安转pip sudo apt-get inst...

不最醉不龟归
29分钟前
2
0
OSChina 周日乱弹 —— 钱不还,我就当你人不在了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享Bigleaf的单曲《小鹿》 《小鹿》- Bigleaf 手机党少年们想听歌,请使劲儿戳(这里) 周日在家做什么? 做手工呀, @poorfis...

小小编辑
今天
101
4
EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
20
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
29
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
39
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部