tomcat线程池调优
2015-11-24 20:08
323 查看
之前项目一直在tomcat下开发,后来在上线之前,需要进行性能安全测试,可是测试的同事反应,登陆口线程并发一多的时候,系统立马就没法登陆了。
中间件是tomcat6. tomcat的日志总是简洁的很,在控制台只发现一句 超过系统最大线程的错误。系统并没有死,只是不再响应了。开始以为是线程池满了的原因
后来调整了也还是这个错误,而且jvm也很正常。后来排查到最后,发现是系统基础平台那边的一个bug,升级了相应的jar包后就好了。
升级后,在不对tomcat进行线程池优化的前提下,还是会报出超过最大线程的警告,tomcat默认的最大线程是200.
因此调整了一下。
protocol="org.apache.coyote.http11.Http11Protocol" 这句指定当前的访问协议,必须要写全,在tomcat 6.0.44 下不写全,会报一个警告,警告下面的参数无法识别。
几个主要的参数:
minSpareThreads="25" 线程池中最小的线程数
maxSpareThreads="75" 线程池中最大的不活动线程数
maxThreads="300" 启动的用来接收请求的线程的最大数。即最大线程响应数目。最大并发数。
acceptCount="300" 当上面的并发数达到限值后,剩余的请求将被放置到一个队列中,该数目代表该队列的最大值,超过则拒绝对应请求。
enableLookups="false"
disableUploadTimeout="true"
connectionTimeout="20000"
maxProcessors="1000"
minProcessors="5"
useURIValidationHack="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
通过上面的调整, tomcat在持续并发300的情况下,响应是很不错的。 可以通过tomcat自己的控制台,用jemeter模拟了1s1000个线程, 看到tomcat的busy 线程持续在300,证明,上面的调优后,并发300 tomcat完全没问题。
中间件是tomcat6. tomcat的日志总是简洁的很,在控制台只发现一句 超过系统最大线程的错误。系统并没有死,只是不再响应了。开始以为是线程池满了的原因
后来调整了也还是这个错误,而且jvm也很正常。后来排查到最后,发现是系统基础平台那边的一个bug,升级了相应的jar包后就好了。
升级后,在不对tomcat进行线程池优化的前提下,还是会报出超过最大线程的警告,tomcat默认的最大线程是200.
因此调整了一下。
<Connector port="8081" redirectPort="18443" protocol="org.apache.coyote.http11.Http11Protocol" URIEncoding="UTF-8" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" connectionTimeout="20000" acceptCount="300" maxThreads="300" maxProcessors="1000" minProcessors="5" useURIValidationHack="false" compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" />
protocol="org.apache.coyote.http11.Http11Protocol" 这句指定当前的访问协议,必须要写全,在tomcat 6.0.44 下不写全,会报一个警告,警告下面的参数无法识别。
几个主要的参数:
minSpareThreads="25" 线程池中最小的线程数
maxSpareThreads="75" 线程池中最大的不活动线程数
maxThreads="300" 启动的用来接收请求的线程的最大数。即最大线程响应数目。最大并发数。
acceptCount="300" 当上面的并发数达到限值后,剩余的请求将被放置到一个队列中,该数目代表该队列的最大值,超过则拒绝对应请求。
enableLookups="false"
disableUploadTimeout="true"
connectionTimeout="20000"
maxProcessors="1000"
minProcessors="5"
useURIValidationHack="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
通过上面的调整, tomcat在持续并发300的情况下,响应是很不错的。 可以通过tomcat自己的控制台,用jemeter模拟了1s1000个线程, 看到tomcat的busy 线程持续在300,证明,上面的调优后,并发300 tomcat完全没问题。
相关文章推荐
- IDEA tomcat内存溢出
- 为tomcat 创建定时 任务 关闭 重启
- tomcat内部运行原理浅析--转载
- Tomcat日志配置
- Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式
- Tomcat 生产服务器性能优化
- linux下安装jdk和tomcat
- tomcat性能调优
- spring4+tomcat8+jdk8应用websocket
- TOMCAT 7优化前及优化后的性能对比
- Tomcat启动报Error listenerStart错误
- tomcat执行startup报错!
- apr-tomcat-native安装
- tomcat中仅启动指定的项目,不启动其它项目
- tomcat-部署
- tomcat如何配置环境变量
- Win7+花生壳6.0+tomcat打做自己的web服务器(搭建自己的网站)(参考)
- qingshow “不积跬步无以至千里,不积小流无以成江海”。--荀子《劝学篇》 用tomcat+花生壳搭建自己的web服务器+域名(参考)
- Target runtime Apache Tomcat v8.0 is not defined
- solr3.5整合tomcat并配置中文分词