2015年(68)
分类: 系统运维
2015-08-31 19:19:18
关于tomcat的能支持多少并发,我个人觉得这个没什么探讨的意义,因为每个人的应用、硬件等都不一样,简单来说,tomcat并发跟应用的性能、服务器性能等相关;看看下面找到的一些优化方法可能比纠结于maxThread要设成多少要好得多。
1、使用最新版的JVM和tocmat
据说最新版的JVM和tomcat都会有更好的性能和可扩展性,不过我们的这边的环境都是用版本6,这个没实际测过,
2、加大堆内存
-Xmx:JVM Heap(堆内存)最大允许值
在设置时一般将Xms与Xmx值设为一样,值的大小可以为可用内存的80%,较大的堆内存可以使JVM不用频繁的去调用GC,减少运行期间系统在内存申请上所花的开销。如:设置JAVA_OPTS='-Xms1024m -Xmx1024m'
3、禁用DNS Lookup
DNS的查询会消耗系统资源,查询的过程中需要一定的时间且要占用网络。可在server.xml的connector中设置enableLookups="false"
4、maxThreads的设置
这个根据实际情况来设,最简单的方法是在忙时看前端负载均衡的连接数,然后留有一定的余量就行了。别设太高,很耗内存,起动tomcat也慢,如果请求太多处理不过来有阻塞,加多一个实例的效果会比较好
5、应用压缩
在server.xml的connector中配置压缩,如
compressableMimeType="text/html,text/xml,text/plain,application/octet-stream" />
compressableMimeType为压缩的类型,compression="500"为大于、等于500bytes的则进行压缩,compression="on"测不论大小一律压缩。
6、使用APR库
使用APR库,可在Tomcat中使用JNI的方式来读取文件以及进行网络传输,加速IO访问,提升Tomcat对静态文件的处理性能。APR需另外下载安装
另外的像应用本身、网络、服务器、数据库之类的也和tomcat的性能关系很大,上面只是列出我找到的关于tomcat本身的一些方法。
最后还有一些建议,如果应用有较多静态文件或是静态文件访问量比较大,给它们一个过期时间让客户端缓存吧,要不就加多个apache或nginx来专门处理静态文件;还有就是应用与数据库之间,memcache这个还是用上吧