`
wawa129
  • 浏览: 321366 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

tomcat性能优化

 
阅读更多

tomcat性能优化

 

一:自身优化

 

1:JVM参数调优:

-Xms :初始化堆的大小, -Xmx:JVM堆的最大值,一般建议堆的最大值设置为内存的最大值的80%,

在catalina.bat中,设置JAVA_OPTS='-Xms256m -Xmx512m'

2:禁用DNS查询

  当web应用程序想要记录客户端信息时,它也会记录客户端的IP地址或者通过域名服务器查找机器名转换为IP地址。DNS查询需要占用网络,并且包括可能从很多远的服务器或者不起作用的服务器上去获取对应的IP的过程。方式是修改 server.xml文件中enableLookups参数值:

<Connector port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true"/> 

 

3:调整线程数

Tomcat使用 线程池加速响应速度来处理请求,在java中线程是程序运行时的路径,是在一个程序中与其它控在Tomcat5对这些参数进行了调整,请看下面属性: 

maxThreads    Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。 
acceptCount    指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。 
connnectionTimeout    网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。 
minSpareThreads    Tomcat初始化时创建的线程数。 

maxSpareThreads     一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。 
     最好的方式是多设置几次并且进行测试,观察响应时间和内存使用情况。在不同的机器、操作系统或虚拟机组合的情况下可能会不同,而且并不是所有人的web站点的流量都是一样的,因此没有一刀切的方案来确定线程数的值。

 

4:采用apache或 nginx与tomcat静动分离

 

5:tomcat集群

 

6:APR库使用 

Tomcat中使用APR库,其实就是在Tomcat中使用JNI的方式来读取文件以及进行网络传输。可以大大提升Tomcat对静态文件的处理性能,同时如果你使用了HTTPS方式传输的话,也可以提升SSL的处理性能。 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics