论文部分内容阅读
随着软件工程和计算机科学技术的发展,为了提高软件的生产效率和质量,逐步实现软件生产的自动化,提高软件的自适应能力,软件系统体系结构的层次越来越多,软件和硬件平台环境结构和类型各种各样。由于软件工程科学尚不成熟,软件系统的开发方法、技术和工具等仍具有很多局限性,不能在设计和实现软件系统功能的同时满足定量的性能要求。目前,在软件工程领域存在以下问题:在需求分析阶段,缺少系统性的定量分析方法,难以确定处理任务的资源需求量、信息量和处理量,并且对资源环境容量规划缺少系统的定量方法和所依据的定量需求信息,资源容量配置与软件运行的实际资源需求难以达到有效匹配;在软件设计阶段,由于缺少信息量和任务处理量信息,UML-SPT(UML profile for Schedulability, Performance andTime)表达的设计图中与软件性能密切相关的信息不准确,并且难以直接应用到软件代码设计过程中;在软件实现阶段,代码设计和运行实施都没有考虑到具体运行环境及其容量配置和处理能力特点,匹配效果差;在软件实施后期,通过环境资源的配置调整和优化,只能实现性能的微调,效果十分有限。本文以集群结构上的数据层为主要研究对象,将软件性能的优化工作从环境资源优化调整阶段前移到软件实现阶段,研究数据层资源适应型若干优化实现方法。根据软件单元执行时的资源需求或消耗特征,结合环境资源的处理能力和资源实际利用情况,在软件系统层内实现数据均衡存储和任务均衡调度,在软件系统层间实现任务分解和迁移,采用面向资源环境的自适应方法,提高软件与资源环境间的有效匹配和软件整体运行性能。为了提高数据层内集群主机或虚拟机节点间负载均衡和资源环境的承载能力,本文提出了负载特性及资源相对均衡度的表示和获取的系统方法,在此基础上提出了一种数据层内负载均衡方法,通过在资源环境同层内节点间调度处理任务实现负载的均衡分配和资源的均衡利用,使软件与环境平台达到有效合理匹配,提高资源利用整体均衡性和软件性能。如何对数据库层上有限的资源进行分配才能使得重量任务和轻量任务均达到合理的运行效果,本文提出一种重量任务多进程化的处理方法,在资源允许的范围内运用多线程对可并行的任务进行处理,通过控制进程或线程运行实例数量实现单节点资源的充分利用,并结合实际案例进行了研究。针对数据层内节点间通讯频繁的问题,提出一种逻辑数据划分的方法,通过数据层数据的逻辑和物理划分与均衡存储实现数据存取的代价优化,根据处理进程和数据存取准并行化方法提高数据层单主机或虚拟机节点资源利用率和处理性能,降低节点间数据耦合,使数据处理任务均衡分布到不同节点,实现数据存取和任务处理的均衡化。对于业务层和数据层之间数据重复传输及存取的问题,本文提出一种业务层和数据层任务分配的方法,通过在软件层和资源环境各层间横向迁移处理任务实现执行代价的优化,根据处理任务的特性及其与服务器资源环境的适应性,将处理任务合理分解和分配到不同层次进行处理,降低层次间的数据耦合,提高系统的处理效率。本文研究的数据层资源适应型若干优化实现方法已应用于应用软件系统中,取得了较好的应用效果,应用时只需要对关键软件单元进行局部改进,具有实现代价小和性能改进可预见的特点。本文研究成果可以应用于独立实体物理环境和统一虚拟逻辑环境下的已有系统性能改进和新系统容量规划,为系统整体平台容量规划、选型及配置、系统体系结构、存储结构、关键功能设计、负载均衡调度等提供依据,提高系统运行性能和环境资源利用率。