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服务方法介绍等,如有不足之处,欢迎留言指出,希望对大家有所帮助。