您的位置:首页 > 运维架构 > Tomcat

tomcat突破1千并发

2018-01-06 15:20 134 查看
最近由于项目马上要上线,于是开始一系列优化压测.一期要承接2.5w的并发量.所以后端部署了18台tomcat

但是刚开是非常差强人意.找到错误分析员因发现打开文件过多.于是开始一系列的系统内核优化

6台机器部署tomcat 每台机器部署3个实例 机器配置如下 32核/64G内存/100G存储

压测机器配置 4路8核 512G内存 1*12T储存

采用jmeter进行的压测

先贴下我的tomcat的线程池

[java] view plain copy

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="2000" minSpareThreads="1000"/>
<Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="2000"
redirectPort="8443"  enableLookups="false"
acceptCount="5000" maxThreads="2000"
compression="on" compressionMinSize="2048"
maxConnections="10000"
URIEncoding="utf-8" />


和jvm配置

[java] view plain copy

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8
-server -Xms16384m -Xmx16384m
-XX:NewSize=1024m -XX:MaxNewSize=1024m -XX:PermSize=1024m
-XX:MaxPermSize=1024m <span style="color:rgb(79,79,79);text-align:justify;">xx: +disableExplicaitGC</span>"
CATALINA_OPTS="-Djava.library.path=/data/tomcat/tomcat6080/lib"


但是当我压到1.5w的时候发现tomcat报错了

错误: org.apache.tomcat.util.net.NioEndpoint$Poller run

原来此处采坑了 nio模式下与 xx: +disableExplicaitGC是冲突的 于是把这个去掉 .在压还是不行,为啥呢?一打开错误日志,卧槽 系统内核参数回去了.

刚开始我没有改配置文件,直接在线改的,中途退出登录了,参数又回去了,于是又该一边内核参数,直接压2.5w



效果还可以吧 ,单压6个节点可以压到1.2w 基本上一个tomcat可以撑住2千并发量.

\
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tomcat高并发