Tomcat教程

Tomcat的性能调校

当设定好Tomcat并让它正常运行后,一般都希望能做一些性能调校的处理工作,以便期望能更有效地在服务器上提供所请求的服务。在本章中,笔者会说明调校底层的Java运行时环境与Tomcat服务器本身的一些观念。

调校服务器是相当复杂的艺术,包栝了测量、了解、改变与再次测董。调校的基本步骤如下:

1.决定需要测量的对象。
2.决定测量的方式。
3.测量。
4.从测量结果中,了解其含义。
5.以预期会提升测量结果的方式来修补系统配置。
6.测量,并与之前的测量结果比较。
7.回到第4步。

请注意,如上所示,上面的步骤不是单一步骤,而是一个”循环”整体,这也许就是现实的写照一一不断调校,直到满意为止不过,在实践中需要设定一个门版值 {threshold},在低于它时,细微的修改不足以影响实阮的性能。当您按上述步骤循环,请把它调校到认为已经足够接近可以满足需求的响应时间要求为止,就可以停止调整与 测暈应泫执行类似下列的工作,以便决定所要调校的对象。

依照实际环境架设Tomcat。试着使用相同的硬件、操作系统、数据库等。越接近实际环境就越可能找到在实际系统中的瓶颈。在另一台机器上安装并配置负载测试用的软件。如果在运行Tomcat的同台机器上运行,测试结果会不可靠,有时会更糟糕。理想的情况是将负载测式软件的机器与运行Tomcat的机器分开。如果没有充足的机器来处理这一事情,那么除了让所有的软件运行在一台测试计算机上之外,您别无选择,而且用这种方法测试仍然比一点都不测试要好得多。但是,让负栽测试客户端与Tomcat运行在同一台机器上,意味着在重复相同测试时,响应慢而且一致性差。

让负责测试的机器与运行Tomcat的机器之间通信隔离。这样处理的原因在于在运行高 流量的测试时,如果追加了不属于测试的网络流量,将导致这些测试结果变得不可靠 同时,您也不想因测试产生的繁重网络流量,导致未包含在测试屮的负荷而使机器变得繁忙。在测试机器与模拟实际的在线服务器之间使用交换式集线器(交换机或hub),或 使用仅连接这两台机器的集线器。

运行一些负载测试,以便模拟在线服务器上会预期发生的出现各种高流量的情况。除此之外,您可能也要运行一些比实际服务器更髙的流量测试,以便为将来系统扩容做准备。

查看使响应速度减慢的原因,并试着判断是哪些硬件或软件组件造成的。通常,元凶是软件,而这是好消息,因为您可以借着重新设定配置,或重新编写软件来解决一些导致缓慢的因素。伹在极端情况下,您可能需要更多的硬件,或更新、更快和更昂贵的硬件,请检査服务器机器的平均负载量,并从Tomcat的日志文件中找寻错误信息。

在本章中,笔者会说明一些经常需要调校的组件,包括Web服务器的性能、Tomcat请求线程池、JVM的性能、DNS查询的配置以及JSP预编译的性能。最后则讨论容量规划的议题。

关注微信获取最新动态