● 摘要
本文从应用层次出发,研究具有高可伸缩性的服务器软件体系结构及其服务质量保证机制,即使得服务器在面临高负载和高负载变化时可保持稳定的吞吐能力和可接受的客户可感知响应能力,主要工作内容包括:首先,提出一种适用于高性能服务器应用的新软件体系结构,称为异步组件软件体系结构(ACom)。这种体系结构在事件驱动程序中混合多线程技术,以阶段为逻辑封装,以阶段组为多阶段资源封装,利用长生命期线程策略和自适应负载线程池以及异步I/O接口,促进服务器获得高伸缩性、低系统开销和低响应时间延迟。为支持全事件化异步通信,给出一种异步I/O适配接口,可适配不同类型的底层具体实现,并对这一I/O接口的基本语义和操作模型进行了分析和研究。为方便资源管理和简化事件驱动程序构造,提出阶段组封装概念。这种粗粒度抽象结构可将具有相关资源使用关系的阶段封装在一起,使事件化程序具有灵活的软件结构划分和清晰的资源管理边界。其次,提出一种面向异步组件体系结构的线程管理方法。它使用长生命期线程管理策略、自适应负载变化的线程池管理算法,有利于发挥底层系统潜能,增强有效服务能力。这种长生命期线程模型既不像经典线程模型那样按请求分配线程,也与典型事件驱动模型使用单线程循环处理所有事件有所不同,而是采用“按需分配”、“遇阻方止”的长生命期工作策略,可减少线程管理开销、增加缓冲友好性。自适应线程池调整算法通过观察线程在池中的近期使用情况,平衡线程创建开销和线程运行时刻管理开销,动态地对线程池大小进行调整,并利用后进先出算法,实现缓冲友好的线程调度。第三,给出一种适用于事件驱动服务器的QoS框架,对基于该框架的5种QoS控制模式进行了分析研究,包括队列前端控制、阶段内反馈控制、区分服务、多阶段速率控制延迟保证、多分类相对延迟保证等。研究了阶段化事件驱动服务器的性能控制结构、度量以及性能控制策略。针对应用级区分服务,给出一种基于处理速率分配的多类比例延迟区分服务资源调度算法。它通过测量多类请求的实际性能,动态按比例重分配处理资源,可一次完成多类资源调度,具有较高效率。第四,给出一种应用模糊逻辑理论的自整定QoS性能控制器设计。这一控制器包含两级模糊推理机。第一级推理机控制规则建立在分析服务器性能控制策略基础上;第二级推理机则以一些控制品质为参考目标如上升时间、过调量以及稳态振荡等,并在必要时调整第一级推理机的输出,以此实现自适应环境变化的控制。第五,对高级Petri网在并发软件建模中的实用性进行了深入研究。对高级Petri网的变体即引用网及其建模工具进行了语义扩充和功能扩展,在语义上增加了策略化触发选择和托肯相关延迟触发语义,在功能上增加了性能评估需要的任务控制、检查点、统计变量和性能报告以及相关的用户接口。以此为工具,对高性能服务器的软件体系结构建模、并发算法分析和模拟性能评估进行了研究和实用性应用。最后,对事件驱动编程框架和QoS框架的应用进行了性能测量、分析和比较研究。建立了一个支持Web服务的SOAP服务器概念原型。通过开关QoS机制以及与现有SOAP服务器进行性能比较测试,证实本文所给的服务器设计框架及QoS保证机制有效且具有明显的性能优势。