How software bugs impact our lives

谈谈tomcat的性能调优(2)

上一篇 / 下一篇  2007-11-18 17:00:10 / 个人分类:性能测试

继续tomcat的性能调优,呵呵
内部调优
现在我们要做的是不再考虑JVM和具体运行Tomcat的操作系统。有些情况下,作为测试人员,我们不能去控制升级JVM或者修改操作系统参数这样的工作,因为可能生产系统这样做的危险性也较高,这时候我们仍要对系统管理员做出建议,然后考虑对Tomcat自身的调整来提高性能。以下是几个方面的建议:
1、禁止DNS查找
有时候我们的应用可能要记录客户端的信息,两种方式,一是记录客户端的数字IP地址,另一个是在DNS数据中查找真实的主机名。DNS查找会增加网络通信,以致造成了网络延迟。要消除这个延迟,我们可以禁掉DNS查找。这时我们的应用再调用getRemoteHost( )方法时,它就只会得到数字IP地址。这个配置是在Tomcat的serve.xml文件中,Connector对象的enableLookups属性,如下:
<!--
  Define a non-SSL Coyote HTTP/1.1 Connector on port 8080
-->
<Connector
    className="org.apache.coyote.tomcat4.CoyoteConnector"
    port="8080" minProcessors="5" maxProcessors="75"
    enableLookups="true" redirectPort="8443"
    acceptCount="10" debug="0" connectionTimeout="20000"
    useURIValidationHack="false"
/>
在生产系统中,除非应用要得到所有客户端真实的主机名,这个通常是建议禁掉的。实在不行这样的工作我们可以在Tomcat的外面做。在一个流量较小的Servr这种修改的效果可能不是十分明显,但是对于某些站点来说,也许突然之间流量暴增也说不定呢,比如,前段时间的奥运票务网站,哈哈!
2、调整线程数
另一个影响性能的是 Connector 所使用的进程数。Tomcat使用一个线程池来提高请求响应的速度。Java中的一个线程单独同操作系统交互,并且有它自己的本地内存,以及同进程内的其他线程分享部分共享内存。
我们可以通过修改Connector对象的minProcessors和maxProcessors来控制线程数。这个数字也许在刚上线的时候进行了适当的设置,可是当用户数变多的时候我们就要增加配置数了。minProcessors值应该设置的足够大来处理最小负载。当用户变多的时候,Tomcat会分配更多的线程,不超过maxProcessors。上限也一定要设置的适当,以免使server的内存超过JVM的内存限制而挂掉。
3、加速JSP的编译
第一次访问JSP的时候,它会被转换成Java servlet源码,然后编译成二进制代码。这个过程中,我们是可以控制所使用的编译器的。默认情况,Tomcat所使用的是和命令行上执行javac时同样的编译器。其实有更快的编译器的,我们可以利用这些来提高JSP的编译速度。
呵呵,累了,如何做,下回分解。

TAG: 性能测试 Tomcat

 

评分:0

我来说两句

日历

« 2024-04-20  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 21039
  • 日志数: 28
  • 建立时间: 2007-11-17
  • 更新时间: 2008-07-05

RSS订阅

Open Toolbar