论文部分内容阅读
大数据时代所处理的数据规模、时效性、复杂度以及价值挖掘,对大数据存储与管理系统的扩展性、访问性能、可用性及可靠性都有着极高的要求。近年来,面向大数据的非关系型存储与管理(NoSQL)系统因其高效的横向可扩展性及高吞吐率等性能优势,在很多大型互联网服务商的大数据存储与管理中发挥了关键作用。然而,由于根据各自应用需求而研发的众多NoSQL系统往往各自为营,使得大部分NoSQL系统例如HBase深受上层应用特性影响,需要通过提供大量可配置参数来调配各类软硬件系统资源,而默认配置通常仅获得系统平均运行时性能。如何依据应用负载特性来调优各项资源配置参数,进而实现系统性能优化成为了当前NoSQL系统管理中的重要挑战;而在追求时效性的内存NoSQL系统例如Redis中,当工作数据集完全置于内存中后,数据访问中的存储I/O瓶颈得到了极大缓解,但在高并发访问需求下的网络性能瓶颈凸显。同时,为了保障内存NoSQL系统中的数据集安全性,其持久化过程依然面临严峻的存储I/O瓶颈。如何在当前高速网络及存储技术驱动下平衡网络与内存、存储与内存之间的I/O性能差距,成为当前内存NoSQL系统性能优化中的又一重要挑战。本文工作将针对上述挑战,集中在面向大数据的NoSQL系统性能优化方面展开研究与实现,接下来将具体论述本课题研究中完成的主要工作: (1)提出了一种NoSQL系统中调优可配置参数的数据集导入优化机制 文中从资源管理角度出发,研究了HBase系统数据集导入负载场景中基于默认配置可能导致的性能问题。并通过实测案例给出了默认配置下HBase系统中存在的几点问题:各工作节点间数据集导入不均衡、集群环境及工作节点中资源利用不充分、客户端及网络资源利用不充分等。针对上述问题,文中提出了基于调优可配置参数的解决方案,通过优化HBase系统中数据集导入负载性能相关参数,制定了面向HBase系统数据集导入的资源配置优化规则。实验结果表明,文中提出的优化规则能够使得HBase系统数据集导入负载性能相比于默认配置获得有效提升,可在不同负载压力下获得2–3.7倍吞吐率加速比。 (2)提出了一种NoSQL系统中负载感知的可配置参数优化管理框架 大多数尚未具备系统运维经验的NoSQL系统管理员及上层应用开发人员通常使用系统默认参数配置,仅获得平均系统运行性能。文中针对NoSQL系统提出了一种通用的参数优化管理框架xConfig,其用户可以选取并分析调优一系列性能相关的可配置参数来生成典型负载场景下的优化规则。基于该框架实现的参数优化管理系统可以集成并共享已生成的优化规则,并依据集群运行状态及负载场景自动匹配相适应的优化规则,以使目标NoSQL系统获得优化后的运行性能。文中基于xConfig框架在HBase系统上实现的原型系统HConfig验证了所提调优策略的有效性,运用了优化规则的配置比默认配置在典型负载场景测试中取得了明显吞吐率性能提升,也较好地维持了HBase系统的高横向可扩展性。 (3)提出了一种内存NoSQL系统的数据集持久化及恢复机制评测方法 随着内存容量的增加以及价格的下降,给构建内存NoSQL系统提供了硬件支撑。而基于易失性主存系统构建的内存NoSQL系统中,为保障数据集安全性并提供可持续性的数据服务,工作数据集的持久化及恢复成为了其中关键功能组件。文中针对内存NoSQL系统中常见数据持久化及恢复机制展开分析并进行了详细测试评估。具体基于Redis系统通过持久化相关配置参数实现了无持久化(NoSave)、快照(Snapshot)、日志(AOF-No/Everysec/Always)持久化测试场景,以及通过快照(Snapshot)、日志(AOF-Rewrite/NoRerite)文件完成数据集恢复的测试场景,并结合实时监控数据分析了持久化及恢复性能以及资源利用情况。文中还对比了不同持久化及恢复案例的优势与不足,并指出了各机制下测试实例中出现的性能瓶颈。 (4)提出了一种基于I/O栈的内存NoSQL系统优化模型以及基于高速网络与存储的性能优化技术 文中针对大数据环境中力求时效性的内存NoSQL系统进行了基于I/O栈的系统性能分析,并给出了形式化模型。然后结合当前显著提升网络I/O性能的RDMA技术以及基于新型存储介质的高速存储技术,来分别优化内存NoSQL系统中容易出现性能瓶颈的网络I/O栈与存储I/O栈。具体实验评估中针对典型内存NoSQL系统Redis进行了基于网络性能提升以及存储性能提升的优化测试,实验结果验证了高速网络和存储I/O能够有效优化内存NoSQL系统吞吐率等性能。