摘要:
WEB服务器结构的日益复杂,其故障也越来越难以定位,且很难有效的优化整个服务器的性能瓶颈,因此很有必要对WEB请求执行过程中的每一个步骤进行性能跟踪,以方便的定位性能瓶颈和故障之所在。 传统的性能跟踪手段,主要是在需要进行性能跟踪的代码段添加代码,通过标准输出或者日志来记录性能等数据。但是这种方式需要将性能跟踪的代码分散在业务流程代码中,比较混乱,当业务代码需要更改、添加或者删除时,相应的性能跟踪代码也需要进行修改,不利于维护和扩展。 本文提出了一种WEB服务器性能跟踪框架的设计与实现,主要针对的是WEB服务器中常见的Servlet容器,从单个WEB请求各个周期的性能分析与一段时间WEB请求的统计分析两个方面,分析WEB服务器的性能数据,从而为优化WEB服务器的性能瓶颈提供正确的数据。同时,为了降低代码的耦合度,提高可维护性与可扩展性,本文采用面向方面编程(AOP)的方式将性能跟踪功能从主要业务功能代码中剥离出来,以达到对WEB服务器程序非侵入的效果,即对业务开发人员完全透明。本文还采用字节码修改的方式来实现AOP功能,降低额外的性能开销。最后,给出了测试用例,验证了本框架的可用性。除了Servlet容器的性能跟踪之外,本框架对其他基于Java EE/J2EE架构的应用程序的性能跟踪也具有借鉴意义。
展开