第一种 - 提高JVM栈内存
第二种 - 解决JRE内存泄露
内存泄漏往往会影响性能表现,我们使用tomcat版本6.0.26及以上版本就可以解决这个问题,因为它包含了一个监听器来处理JRE和PermGen的内存泄漏。使用的监听器是,
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
第三种 – 线程池设置
线程池指定Web请求负载的数量,因此,为获得更好的性能这部分应小心处理。可以通过调整连接器属性“maxThreads”完成设置。maxThreads的值应该根据流量的大小,如果值过低,将有没有足够的线程来处理所有的请求,请求将进入等待状态,只有当一个的处理线程释放后才被处理;如果设置的太大,Tomcat的启动将花费更多时间。因此它取决于我们给maxThreads设置一个正确的值。
我们可以修改Tomcat默认配置来提高线程处理能力。apache-tomcat-7.0.42-windows-x64其默认配置
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="150" minSpareThreads="4"/>
<Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
修改后
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="250" minSpareThreads="4" maxHttpHeaderSize="8192" /> <Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" enableLookups="false" acceptCount="100" disableUploadTimeout="true"/>
在上述配置中,maxThreads值设定为“250”,这指定可以由服务器处理的并发请求的最大数量。任何多出的并发请求将收到“拒绝连接”的错误提示,直到另一个处理请求进程被释放。错误看起来如下,
org.apache.tomcat.util.threads.ThreadPool logFull SEVERE: All threads (250) are currently busy, waiting. Increase maxThreads (250) or check the servlet status
如果应用提示上述错误,务必检查上述错误是否是由于单个请求花费太长时间造成的,这个问题的原因是这样的,有时候如果数据库连接不释放的话,进程将不会处理其它请求。
enableLookups 若设为true, 则支持域名解析,可把 ip 地址解析为主机名。为了提高处理能力,应设置为 false。
注意: 如果请求的数量超过了“750”,这将不是意味着将maxThreads属性值设置为“750”,它意外着最好使用“Tomcat集群”的多个实例。也就是说,如果有“1000”请求,两个Tomcat实例设置“maxThreads= 500”,而不在单Tomcat实例的情况下设置maxThreads=1000。
第四种 - 压缩
在server.xml配置文件中设置压缩的选项。压缩可以在connector像如下设置中完成
<Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/plain,application/octet-stream" />
参数说明
compression 打开压缩功能
compressionMinSize 启用压缩的输出内容大小,这里面默认为2KB
compressableMimeType 压缩类型
connectionTimeout 定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的时间
相关推荐
Tomcat性能调整.pdfTomcat性能调整.pdfTomcat性能调整.pdf
tomcat性能调整详细介绍,tomcat性能优化介绍
tomcat 性能调整PPT,讲得比较好,英文版,英文比较简单,都能读懂
Tomcat 性能调整,tomcat参数调整,压力测试介绍
在Tomcat和应用程序进行了压力测试后,如果您对应用程序的性能结果不太满意,就可以采取一些性能调整措施了,当然了前提是应用程序没有问题,tomcat性能调优总结,欢迎下载
Tomcat性能调优指导手册 1. 概述 3 2. Java虚拟机性能调优 3 2.1 catalina.sh 或 catalina.bat 3 2.2 winNT服务 3 3. 禁用DNS查询 4 4. 调整线程数(连接数) 4 5. 使用gzip传输 5 6. 负载均衡 5 6.1 实现负载均衡的...
性能测试与分析是软件开发过程中介于架构和调整的一个广泛并比较不容易理解的...本文中作者结合自己的使用经验和参考文档,对Tomcat性能方面的调整做一简要的介绍,并给出Tomcat性能的测试、分析和调整优化的一些方法。
Tomcat性能优化 1. 操作系统2. JAVA 虚拟机3. Tomcat 自身的调整策略
性能测试与分析是软件开发过程中介于架构和调整的一个广泛并比较不容易理解的...本文中作者结合自己的使用经验和参考文档,对Tomcat性能方面的调整做一简要的介绍,并给出Tomcat性能的测试、分析和调整优化的一些方法。
1.操作系统调优; 2.Java虚拟机调优; 3.Apache集成Tomcat; 4.【适用场景】 大量使用静态页面的应用系统; 5.【适用场景】 并发用户量及在线使用用户数量比较高的系统
Tomcat集群与负载均衡 Tomcat性能调整
Tomcat性能优化可从外部环境和自身调整两方面着手。 外部环境主要是Tomcat所在服务器的运行环境,包括操作系统层面、部署以及Java虚拟机的配置
tomcat 优化,主要对tomcat进行介绍,对参数进行说明,并进行参数设置调整,提高性能、。
nginx、tomcat性能优化,配置文件优化,参数调整,集群优化
可以根据机器的时期性能和内存 大小调整,一般可以在 400-500。最大可以在 800 左右。 minSpareThreads=”25”—Tomcat 初始化时创建的线程数。默认值 4。如果 当前没有空闲线程,且没有超过 maxThreads,一次性创建...
该文档为在性能测试过程中对一些中间件的调优,如对tomcat的JVM、连接器、线程数等,中创中间件的JVM、连接数、日志级别调整,weblogic的JVM、关闭访问日志等。 同时包括数据库连接池的调优,Apache集群、oracle参数...