企业级云平台建设规模估算方法论研究
2019-03-30王涛陈英达
王涛 陈英达
【摘要】 随着信息系统的飞速发展、硬件设备更新换代,企业若需对云计算平台上硬件资源、应用系统的容量进行有效管理,需要企业对现有的评测体系进行深入的了解和对比。从现有服务器性能评测体系中(Tpc-c、Spec、Linpack、RPE2)选择那种适合企业自身的评估方法;随着X86服务器性能飞速发展的今天,企业在进行硬件采购时,需要去除唯IOE论、需构建小型机与X86服务器之间性能换算通道、解决企业在硬件选型时如何进行快速决策,这些在本文的“容量评估”中可以找到解决方案。
【关键词】 容量评估 性能估算 Tpc-c、Spec 硬件资源 信息系统
引言
传统云平台规划建设中的容量管理体系还不够完善,欠缺对应用系统的容量进行快速测算与评估的方法,导致应用系统的容量评估成本过高、评估效率过低、评估时间过长,影响云平台的总体容量规划及建设进度。现业界众多服务器评测体系中,例如:SPEC、TPC、Linpack在内,虽然从处理器性能、服务器性能、商业应用性能到高性能计算机的性能,都给出了不同的量化评价指标,但均存在着不同程度的局限性。因此,需要结合企业云平台的特点,建立一套科学的容量快速估算方法,根据应用系统的资源利用情况快速获取硬件资源需求,從而降低硬件资源评估成本和评估时间,提升评估效率,为云平台的总体容量规划提供技术依据,加快云平台建设进度,防止资源浪费或不足[1]。
一、服务器性能评测体系介绍
1.1 TPC-C
TPC是由数10家成员公司组建的非盈利机构,其总部设在美国。该组织对全世界开放,但迄今为止,绝大多数成员都是西欧、日、美大公司,其成员主要是计算机软硬件厂家,而非计算机用户,它的功能是制定商务应用基准程序的标准规范、性能和价格度量,并管理测试结果的发布。
TPC曾经推出过四套基准程序,被称为:TPC-A、TPC-B、TPC-C和TPC-D。其中A和B已经过时,不再使用。TPC-C是专门针对联机交易处理系统(OLTP)的基准程序,TPC-D是一个广泛的决策支持(Decision Support)规范。TPC即将推TPC-E规范,作为大型企业(Enterprise)信息服务的基准程序。
1.2 SPEC
SPEC是由30个左右世界知名计算机大厂商所支持的全球性第三方非营利性合作组织,其成员包括IBM、AT&T、BULL、CDC、DG、DEC等。它致力于建立、修订以及制定一系列服务器性能评估的基准套件。目前包括8大测试规范、26种测试模型。当前主要的基准测试程序有SPEC int_base_rate 2000、SPEC fp_base_rate 2000和SPEC JBB 2000等。
SPEC应用服务器性能测试是一个全面衡量java企业服务器在Web应用中的性能基准套件。在这个基准中是模拟一个现代化企业的电子化业务工作,如产品生产制造管理、客户定购查询、供应商和服务提供商管理等,对系统进行压力测试,以测试全面运行典型java业务应用的服务器性能水平。
SPEC web2005评测的原理是:通过多台客户机向SERVER发出Http Get请求,请求调用Web服务器上的网页文件,这些文件从数千字节到数兆字节不等。在相同的时间里,服务器响应的请求越多,就表明服务器对客户端的处理能力越强,Web性能就越好。
SPEC CPU 2006包括了CFP2006和CINT2006两个子项目,前者是用于测量和对比浮点性能,而后者则用于测量和对比整数性能。
1.3 Linpack
Linpack,国际上最常用于评测高性能计算机系统浮点性能的benchmark。通过使用高性能计算机,采用高斯消元法求解N元一次稠密线性代数方程组的测算,评估高性能计算机的浮点性能。
Linpack测试值是指实测的浮点峰值,也就是说在被测服务器上运行Linpack测试程序,通过进行各种调优方法得到最优的测试效果。然而在实际程序运行过程中,几乎是不可能达到实测浮点峰值,更不用提达到理论浮点峰值。这两个数值只是作为衡量机器性能的一个理论指标,用来表明机器处理能力的一个最大值和潜能的参考。
1.4 RPE2
RPE2由IDEAS international公司发布。它只是理论上,通过对TPC-C,TPC-H,SAP SD 2-Tier,SPECjbb,SPECint_rate,SPECfp_rate等benchmark进行几何运算得来,并不经过真实的测试环境。重要作用是为了在不同的产品处于不同的benchmark时,且各自存在优劣时进行比较。
1.5云平台容量评估
1、方法
云平台容量评估的目标是提供一种云平台容量估算的体系和方法,针对不同业务的信息系统应用所需的硬件资源,通过实际的调研、测试、拟合,实现各硬件资源通用的估算方法。
成熟的企业从不完全依赖于“国际通用标准”,而是使用符合自己的体系和规范来测试系统,建立容量评估,从而为选型提供依据。“国际通用标准”的度量可以作为参考、学习,而不应作为充分必要条件。容量评估实施的工作思路为三个阶段:前期调研分析,模型研究,验证完善。
2、调研
收集国内外容量管理经验相关资料,汇总分析成熟路线,借鉴业内先进经验,分析其对南企业的业务系统的适用性,制定符合企业业务特点的技术研究路线。
3、研究过程主要分三个阶段
(1)公司业务系统容量管理现状分析
总结国内外成熟技术路线及方法特点,收集公司全业务系统基础信息,调研容量管理需求。
(2)业务系统应用容量研究
分析公司应用系统特点,量化研究系统典型模块资源需求,评估业务系统整体资源需求。
(3)硬件资源容量研究
汇总业内各厂商硬件设备(服务器、存储等)性能指标,研究分析不同厂商、型号、配置等性能参数,构建硬件设备资源容量。
(4)云平台总体容量的研究
把应用系统所需的容量按业务类型进行分类,作为计算云平台容量的源数据,根据业务类型容量及业务高峰期时间,评估出企业云平台的总体规划容量。
4、验证完善
选取云平台上的典型应用和典型软硬件配置进行模型测试验证,根据验证结果对容量评估进行修订。
5、建立模型的过程
容量评估的建立就是通过实测数据分析、拟合、经验等方法,对云平台上的未建或扩容系统评估其业务容量的过程。通过数据拟合法,经验评估法两种方法,在可研、设计,上线前和上线后四个阶段建立信息系统容量评估。
(1)数据拟合法:通过大量数据采集、建立数学模型,运用统计学软件SPSS等进行数据拟合;
(2)经验评估法:主要依靠经验丰富的研发和应用人员,结合在运其他系统建设情况,对现有系统容量进行评估;
可研阶段:首先需要对目标系统的功能及非功能性需求进行量化,然后将量化数据输入测算模型计算出最低处理能力需求;通过用户调研表,将系统拆分到模块层面,主要含功能、并发量等信息,通过典型模块参考字典,进行容量评估。
设计阶段:此阶段,表结构、SQL等子模块已经完成将主要模块拆分到SQL等底层操作层面,通过SQL语句容量参考字典,精细化评估系统容量[2]。
上线前阶段:针对系统上线,进行测试,参考已建立的容量评估,通过压力测试等,对开发商研发进行评判。
上线后阶段:结合上线后,系统容量各项指标变化,构建趋势分析,科学进行容量扩容。
二、各服务器性能评测体系对比
2.1 TPC-C解读
从TPC-C的定义可知:这套基准规范是用来衡量整个IT系统的性能,而不是单一评估服务器或某个硬件设备的标准,而且tpmC数值的大小直接受到各个环节的影响。这里的“IT系统”包括服务器、外设(如硬盘或RAID)、数据库软件、服务器端操作系统、客户端及其操作系统、数据库软件和网络连接等。
因此tpmC数值会因不同的采购配置有非常大的差别;TPC不给出基准程序的代码,而只给出基准程序的标准规范。任何厂家或其他测试者都可以遵照规范,构造出对自己最优的测试系统(测试程序和测试平台)[3]。
假如同样的服务器被应用到用户的环境中,厂家报的tpmC值就没多大的意义,因为用户的实际系统与厂家原来用来做TPC测试的系统完全不同。当同样的服务器用在不同的系统中时,tpmC值可能有相当大的差异,很多用户还没有考虑到这一点。
2.2 SPEC解读
从SPEC基准测试的定义可以知道,这套标准规范主要是用于估算内存性能、CPU和Web服务器性能。
SPEC CPU测试中,测试系统的处理器、内存子系统和使用到的编译器(SPEC CPU提供的是源代码,并且允许测试用户做一些编译优化)都会影响最终的测试结果。
综上所述,SPEC基准测试可以对CPU、WEB服务器性能指标给出一套相对参考,但是仍然不能与客户的业务系统产生关联,不能从SPEC基准中估算具体业务系统的扩容采购“量”。
2.3 Linpack
Linpack基本上就是用來解决线性方程的公式转换语言集,因此比较适合用来衡量超级计算机的计算性能,应用领域比较单一,与大多数普通的应用系统关联度不大[4]。用其估算“容量”,除费用成本高之外,还存领域跨度大,与实际应用系统“脱节”。
2.4 RPE2
RPE2本身不做测试,依赖于其他机构发布的数据,所以存在局限性,例如:新服务器在没有及时发布相关数据或数据不准确时,RPE2就不能很好的进行估算[5]。而且,RPE2本身只是对已知的选型方案进行横向比较,自身不对容量进行估算。
2.5云平台容量评估
从云平台容量评估的原理可以知道:并不侧重CPU物理设备的性能指标测算,而是通过数据拟合、经验评估法,从实际业务系统的特点出发,对云平台上的业务系统容量进行估算,然后配合海量的硬件数据字典,使得“容量评估”符合企业实际业务系统特性,从而可以较真实的评估系统资源。虽然“容量评估”主要针对企业业务特性定制,但是对有经验的专业人员而言,可以通过研究分析不同系统之间的难易程度规律,使用调整“业务复杂度系数”也可以通过也有模型对不同系统进行横向评估。
通过云平台容量评估,可以帮助企业解决高采购成本,设计符合企业总体要求、满足项目具体需求的硬件资源测算方法,建立一套符合自身业务系统特点的设备容量测试标准体系,解决企业在实际的硬件选型中遇到的困难,评估企业云平台的总体规划容量,减少资源的浪费和不足。
三、总结
综上所述,现有的主流基准测试更偏重理论,可以作为一个辅助参考标准,就企业对服务器选型来说,只依靠“国际通用”的度量作为选型依据是不够严谨的,因为服务器最终是服务于特定的软硬件环境下、不同的网络、数据库及应用系统等,服务器的性能表现会存在不同,因此在进行性能评估时,“国际通用”的度量有可能不够准确,甚至与实际有很大差别,所以“国际通用”可以作为参考,但不是选型的唯一依据。
例如,估算OLTP数据库服务器的容量通常使用TPC-C标准,估算OLAP数据库服务的容量使用TPC-H标准,估算应用中间件服务器的容量使用SPECjl3b2005标准,估算Web服务器的容量使用SPECweb99标准,估算企业资源计划服务器的容量使用SAI^s标准。虽然这些标准提供了容量估算的基本方法,但是:
(一)不同类型应用服务器的衡量标准是不一样的,缺乏一个统一的容量估算体系对各种业务应用系统中的不同服务器进行通用估算。
(二)同时,在具体使用各种标准进行估算前,要求按照每个标准的规范建立各自严格的测试场景,很难实现通用性。
(三)另外,影响系统资源使用率的一个重要因素是:用户需求。随着业务的变化,用户需求势必发生改变。但是在新的应用系统服务器投入运行之前,使用各种标准进行容量估算的过程中,由固定标准规定了固定的用户需求值,使得估算容量和将来实际容量之间可能存在较大偏差。
1、云平台容量评估的注意事项
企业对云化应用硬件资源容量需求估算方面,需要注意:
(1)最好构建一个真实的试点,因为实际应用环境是检验系统的最好标准。
(2)“国际通用”的度量可以作为参考值,但是不应该作为必要条件。
(3)不论是TPC-C还是SPEC,其计算结果都只能作为一个横向比较的参考。在实际应用中,决定系统性能的因素除了硬件、系统软件外,与应用软件的设计、架构也是有很重要的联系[6]。
2、云平台容量评估的应用价值
从信息化主管部门的角度出发,构建一套云计算平台容量评估体系是非常有必要的,这其中包括:
(1)通过对各部门业务系统运行情况的调研,进行历史数据的采集、整理分析,依据分类构建基准指标库(字典库)。收集的信息包括:系统并发用户数、服务器的配置、活跃数据量、业务复杂度、业务高峰时间段、CPU负载等;
(2)由应用开发商定期采集基准值,更新基准字典库。有了基准字典库的信息参考,不仅可以用于评估项目建设方案中服务器选型,也可以对各部门进行系统架构规划的优化提供借鉴。
参 考 文 献
[1]翟艳芬,周润松,陈磊 基准测试在服务器选型中的研究分析与实践 中国软件评测中心 北京 100048 2011(05):2-2.
[2]丁玉伟, 田渊文, 王海滨. 结合统计学方法的银行IT系统性能预测模型研究[J]. 中国金融电脑, 2015(10):42-47.
[3]Transaction Processing Performance Council (TPC) TPC BENCHMARKTM C February 2010:9-11.
[4]刘冉 如何选择服务器性能测试工具 《程序员》, 2013(7):128-131
[5]韩光涛,张元英,HanGuangtao,ZhangYuanying SPECweb99:最新Web服務器性能基准测试《计算机应用研究》, 2000, 17(4):101-102
[6]陈英达,钟苏生,周开东,麦晓辉.信息系统资源估算方法研究[J].信息技术与信息化,2017(11):128-131.
王涛(1982年),男,陕西宝鸡,本科,工程师,主研领域:信息化管理,单位: 国电南瑞科技股份有限责任公司,
陈英达(1988-),男,广东广州,博士,工程师,主研领域:电力信息化工作,单位: 广东电力信息科技有限公司,