论文部分内容阅读
随着互联网技术的发展和应用软件的成熟,将软件作为一种服务形式提供给客户的需求逐渐增加,对新型软件交付技术的研究已经成为当下的趋势,而SaaS(Software as a Service)这个新的模式出现正是顺应了当前的软件市场的要求,它可以帮助软件开发商通过提供服务的形式赢得客户。作为SaaS应用的核心技术,多租户正受到越来越多的重视,SaaS的多租户的思想是将多个租户的数据和业务流程托管存放在SaaS服务商的同一服务器组上,其目的是允许多个租户共享软硬件资源,提高资源利用率,降低分摊在单个租户上的平均基础设施和管理成本。但是,当并发访问的用户数达到一定数量时,就会出现数据服务器资源(CPU、内存等)紧张、处理数据的能力跟不上等一系列问题,进而导致用户等待时间增加、访问出错等问题,因此,为了达到service level agreements (SLAs)和保持应用设备(应用服务器和数据库服务器)的高性能和利用率,解决上述问题是SaaS应用面临的一个重要挑战。数据库集群是一种可以提高数据库吞吐量和减少数据库请求响应时间的有效机制,通常被用来解决网络服务中高数据访问的单点瓶颈问题。但是由于国外公司的技术封锁,购买和维护成本都比较高,MySQL数据库以其开源免费的特点受到企业的欢迎,使用MySQL搭建高可用的数据库集群系统,可以有效的控制企业IT成本。在成功搭建起高可用MySQL集群基础之上,本文希望通过对MySQL集群进行深入的研究,比较不同连接方式(mysql-proxy、keepalived)下,MySQL集群的性能,研究SQL节点与数据节点的不同数目节点配置对MySQL集群性能的影响。在找到了较优的数据库连接方式以及较优的节点数目配置之后,分析不同业务规模的租户组合对数据库性能的影响。本文采用实验驱动的方法,通过大量实验分析了不同的连接方式及节点数目配置对MySQL集群性能的影响,以及多租户条件下,不同规模业务组合对数据库集群性能的影响。对MySQL集群性能的分析主要包括对管理节点(本文的管理节点同时充当应用服务器)、SQL节点和数据节点的CPU、内存利用率进行分析以及几种典型交互的响应时间的分析。本文的创新点主要体现在:1.通过实验分析了keepalived与mysql-proxy连接方式下,MySQL集群的性能。到目前为止,很少有人研究这个问题,有的是专门针对其中的一个进行研究,而缺乏比较分析。2.研究SQL节点与数据节点的不同数目节点配置对MySQL集群性能的影响。通过实验可以清楚地看到在访问数据库集群时,不同角色节点所承担压力的大小,可以对数据库集群有一个更加深入的了解。3.通过研究多租户条件下,不同规模业务组合对数据库集群性能的影响,能够对多租户应用的数据库整体优化部署提出分析建议,在保证用户良好的数据库访问性能的同时,又保持应用设备较高的利用率,有着较高的使用价值。