论文部分内容阅读
随着信息技术的不断发展和广泛应用,尤其是移动计算和云计算的快速普及,Web工程开发中对服务器的性能要求越来越高。开发领域中虽然拥有很多测试和性能分析工具,但是并不满足部分需求,比如分析每个服务器的历史性能数据,服务端代码中每个模块的性能数据,以及与项目管理结合、通过即时的性能分析来有效的管理开发流程。在作者实习过程中,所在项目组负责移动项目开发与Web开发。这些项目都涉及到服务器的性能观察与分析问题,即如何在开发者代码提交后自动获得这个版本代码的各项服务器性能数据,并且将相关信息分发给相关开发者。开发组需要一个扩展性、移植性强的轻量级工具来完成这个任务。这个工具需要进行版本观察与控制,并通过版本的更新事件来驱动自动化测试,并展现和统计分析本次测试中服务器以及这个版本的服务端代码的性能。本文设计与实现了一个基于日志分析的Web Server性能观察与统计分析的工具,重点阐述了日志管理模块的设计与实现。工具通过与Jenkins结合来完成代码版本管理与持续集成,利用Hadoop相关理论与技术来完成对日志文件的存储、处理和统计。另外,本工具在逻辑设计上考虑到了扩展性和可移植性,将核心模块封装成为SDK以方便需要进行性能分析的代码模块来调用,并利用Hadoop集群的可扩展性来简化被测试服务器集群的扩展。本文提出的方案适合于多服务器集群上的服务器性能观察与分析,并且开发中利用持续集成工具进行开发管理的场合。利用集群的存储与计算能力,本文所提出的方案提高了日志文件的存储与统计计算能力,较适合项目开发中需要快速地对不同的代码版本进行性能分析的情景。