欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Tomcat并发优化方法介绍

程序员文章站 2022-04-06 20:27:06
tomcat 常用运行模式有3种,分别为 bio,nio,apr.生产环境建议用apr,详细请看上一篇博文《tomcat之——运行模式》 安装apr [ro...

tomcat 常用运行模式有3种,分别为 bio,nio,apr.生产环境建议用apr,详细请看上一篇博文《tomcat之——运行模式

安装apr

[root@liuyazhuang ~]# yum -y install apr apr-devel openssl-devel 
[root@liuyazhuang ~]# tar zxvf tomcat-native.tar.gz 
[root@liuyazhuang ~]# cd tomcat-native-1.1.24-src/jni/native 
[root@liuyazhuang native]# ./configure –with-apr=/usr/bin/apr-1-config –with-ssl=/usr/include/openssl/ 
[root@liuyazhuang native]# make && make install 

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

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

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

在这段下面添加:

============ 
# os specific support. $var _must_ be set to either true or false. 
cygwin=false 
darwin=false 
============== 
catalina_opts=”-djava.library.path=/usr/local/apr/lib” 

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

protocol=”org.apache.coyote.http11.http11aprprotocol” 

启动tomcat之后,查看日志

more tomcat_home/logs/catalina.out 
apr 07, 2017 11:49:12 am org.apache.catalina.core.aprlifecyclelistener init 
info: loaded apr based apache tomcat native library 1.1.31 using apr version 1.3.9. 
apr 07, 2017 11:49:12 am org.apache.catalina.core.aprlifecyclelistener init 
info: apr capabilities: ipv6 [true], sendfile [true], accept filters [false], random [true]. 
apr 07, 2017 11:49:12 am org.apache.catalina.core.aprlifecyclelistener initializessl 
info: openssl successfully initialized (openssl 1.0.1e 11 feb 2013) 
apr 07, 2017 11:49:13 am org.apache.coyote.abstractprotocol init 
info: initializing protocolhandler [“http-apr-8080”] 
apr 07, 2017 11:49:13 am org.apache.coyote.abstractprotocol init 
info: initializing protocolhandler [“ajp-apr-8009”] 
apr 07, 2017 11:49:13 am org.apache.catalina.startup.catalina load 
info: initialization processed in 1125 ms 

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.使用apr

具体安装操作,见文章开头部分

4.优化tomcat参数

<connector port=”8080″ 
protocol=”org.apache.coyote.http11.http11aprprotocol” 
connectiontimeout=”20000″ //链接超时时长 
redirectport=”8443″ 
maxthreads=”500″//设定处理客户请求的线程的最大数目,决定了服务器可以同时响应客户请求的数,默认200 
minsparethreads=”20″//初始化线程数,最小空闲线程数,默认为10 
acceptcount=”1000″ //当所有可以使用的处理请求的线程数都被使用时,可以被放到处理队列中请求数,请求数超过这个数的请求将不予处理,默认100 
enablelookups=”false” 
uriencoding=”utf-8″ /> 

总结

以上就是本文关于tomcat并发优化方法介绍的全部内容,感兴趣的朋友可以继续参阅:优化tomcat配置(内存、并发、缓存等方面)方法详解浅谈tomcat三种运行模式tomcat开启jmx服务方法介绍等,如有不足之处,欢迎留言指出,希望对大家有所帮助。