一种分配服务器资源的方法和装置与流程

文档序号:12363161阅读:368来源:国知局
一种分配服务器资源的方法和装置与流程

本发明涉及服务器容量管理技术领域,具体涉及一种分配服务器资源的方法和装置。



背景技术:

目前大型企业通常都有自己的虚拟化数据中心,采用虚拟化数据中心可以为企业节约人力维护成本,也可节约电力、机柜等物力成本。但是,中小型企业往往不具备这样的条件,只能租借价格不菲的云服务器产品。而租借什么样配置的才能最大化发挥作用,很难确定,企业针对不同业务开发出的系统,性能指标不同,所需服务器资源也不相同。不同业务系统申请云服务器资源时没有一个有效的参考标准,不知道申请什么规格的硬件资源,申请的硬件资源太多会造成资源浪费,申请的硬件资源太少会出现资源不够用,后期扩容和升级复杂等问题。因此,如何申请到合适的服务器资源是企业开发业务应用时不得不解决的问题。



技术实现要素:

本发明提供了一种分配服务器资源的方法和装置,以解决现有的业务应用在申请服务器资源没有参考标准,无法申请到合适的硬件资源的问题。

为达到上述目的,本发明的技术方案是这样实现的:

根据本发明的一个方面,本发明提供了一种分配服务器资源的方法,该方法包括:

获取不同类型业务应用对应的性能测试结果集;

接收当前业务应用申请服务器资源的请求,并对当前业务应用的类型进 行判断;

根据当前业务应用类型的判断结果,在获取的性能测试结果集中,查找与当前业务应用类型相同的业务应用及该类型相同的业务应用对应的性能测试结果集,根据该查找到的性能测试结果集为该当前业务应用分配服务器资源。

可选地,根据该查找到的性能测试结果集为该当前业务应用分配服务器资源包括:

参考所述当前业务应用的性能指标,在所述性能测试结果集中,查找对应的配置,按照查找结果为所述当前业务应用分配对应配置的服务器资源。

可选地,当前业务应用的性能指标包括如下指标中的一种或者多种:

业务应用欲实现的并发用户数;

业务应用欲达到的平均响应时间;

业务应用申请服务器资源的用途;

业务应用是否支持集群性能。

可选地,方法还包括:根据当前业务应用是否存在异步交互以及总请求数,确定当前业务应用申请服务器资源是作为前端服务器、后端服务器或数据库服务器,从而得到当前业务应用申请服务器资源的用途。

可选地,服务器资源包括:

硬盘空间资源、内存资源和CPU进程资源。

根据本发明的另一个方面,还提供了一种分配服务器资源的装置,分配服务器资源的装置包括:

性能测试结果集获取单元,用于获取不同类型业务应用对应的性能测试结果集;

应用类型判断单元,用于接收当前业务应用申请服务器资源的请求,并对所述当前业务应用的类型进行判断;

资源分配单元,用于根据应用类型判断单元的判断结果,在性能测试结果集获取单元获取的性能测试结果集中,查找与当前业务应用类型相同的业务应用及该类型相同的业务应用对应的性能测试结果集,根据该查找到的性能测试结果集为该当前业务应用分配服务器资源。

可选地,资源分配单元包括:

性能指标参考单元,用于参考所述当前业务应用的性能指标,在所述性能测试结果集中,查找对应的配置,按照查找结果为所述当前业务应用分配对应配置的服务器资源。

可选地,当前业务应用的性能指标包括如下指标中的一种或者多种:

业务应用欲实现的并发用户数;

业务应用欲达到的平均响应时间;

业务应用申请服务器资源的用途;

业务应用是否支持集群性能。

可选地,性能指标参考单元具体用于根据当前业务应用是否存在异步交互以及总请求数确定出当前业务应用申请服务器资源是作为前端服务器、后端服务器或数据库服务器。

可选地,服务器资源包括:

硬盘空间资源、内存资源和CPU进程资源。

本发明的有益效果是:本发明的这种分配服务器资源的方法通过获取不同类型业务应用的性能测试结果集,使得服务器在面对申请服务器资源的当前业务应用时,能够根据当前业务应用的类型在已获取到的同类型业务应用对应的性能测试结果集中查找相应的资源配置数据,从而实现了在对当前业务应用不进行性能测试的情况下,也能为当前业务应用分配到合适的服务器资源,简化了服务器资源分配的过程,实现了服务器容量管理。此外,本发明还提供了一种与上述分配服务器资源的方法相对应的分配服务器资源的装置,该分配服务器资源的装置可以为申请服务器资源的业务应用分配合理的 资源,提高容量管理的效率。

附图说明

图1是本发明一个实施例的一种分配服务器资源的方法流程图;

图2是本发明一个实施例的性能测试结果集示意图;

图3是本发明一个实施例一种分配服务器资源的装置的框图。

具体实施方式

本发明的核心思想是:容量管理是为合适的应用系统分配合适的资源,使应用系统和资源利用达到最大化。对服务器而言,服务器会面对很多来申请资源的业务应用,如何为每个业务应用分配合适的服务器资源是服务器容量管理的任务。在本发明中,通过获取不同类型业务应用对应的性能测试结果集,并根据得到的性能测试结果集以及申请服务器资源的应用的类型,服务器(更具体的是服务器上的分配服务器资源的装置)在对应的性能测试结果集中查找资源配置参考数据,由于同类型的业务应用所需的服务器资源往往差别不大,因而根据已有的性能测试结果集对当前业务应用分配服务器资源更加适合业务应用的需要,避免了资源分配不足以及资源浪费的发生,实现了服务器资源的容量管理。

图1是本发明一个实施例的一种分配服务器资源的方法流程图,参见图1,本发明的这种分配服务器资源的方法包括:

步骤S110,获取不同类型业务应用对应的性能测试结果集;

步骤S120,接收当前业务应用申请服务器资源的请求,并对当前业务应用的类型进行判断;

步骤S130,根据当前业务应用类型的判断结果,在获取的性能测试结果集中,查找与当前申请服务器资源的业务应用类型相同的业务应用及该类型相同的业务应用对应的性能测试结果集,根据该查找到的性能测试结果集为 该当前业务应用分配服务器资源。

经过图1所示的步骤,服务器端在收到当前业务应用申请服务器请求后,先对当前业务应用的类型进行判断,在确定了当前业务应用的类型后,到同类型的业务应用对应的性能测试结果集中查找具体的资源分配数据,按照资源分配数据向当前业务应用分配服务器资源。如此实现了在不对当前业务应用进行性能测试的前提下,也向当前业务应用分配合适的服务器资源的有益效果。

其中,性能测试主要是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试,不进行性能测试就能够分配合适的服务器资源是容量管理的理想状态,也是基于获取的性能测试结果集的一个假设。如果企业是零基础,那么对不同类型的业务应用的性能测试是不可避免的。由于不同类型业务应用性能指标不同,所需的服务器资源也不相同,而同类业务应用之间在所需服务器资源上往往差别不大,因此可以通过对同类应用中的一个业务应用的性能测试结论汇聚成的性能测试结果集,理论支撑同类型的其他业务应用的资源分配。这样对同类型其他业务应用而言就是不进行测试也能分配到合适的资源。

本实施例中,性能测试结果集的获取方式可以在实验室测试环境下,分别对不同类型的业务应用中一个产品进行性能测试,每个业务应用分配多少服务器资源比较合适是服务器容量管理解决的问题,CPU线程数、内存、磁盘空间是需要服务器分配的主要的目标资源。本发明实施例是以上述三项需分配的主要目标资源为例进行说明,具体的每类业务应用需要多少CPU线程数、内存和磁盘,通过性能测试模拟真实用户使用的不同压力场景(也就是并发用户数),观察不同CPU、内存和磁盘空间所反馈的性能表现,将该性能表现作为样本数据,记录到性能测试结果集中,从而获取到不同类型业务应用对应的性能测试结果集。或者,根据现有的不同类型业务应用分配到的资源以及相应的性能表现,将这些已有应用的资源分配数据记录下来,作为不同类型业务应用对应的性能测试结果集。具体实施时可从不同方式获取 不同类型的业务应用对应的性能测试结果集,对此不做限制。

这里的性能测试结果集不仅包括不同类型业务应用对应的性能测试结果集,更具体的还可以包括同一业务应用不同版本、不同功能以及不同规模的性能测试结果集,通过这些性能测试结果集可以指导该业务应用的后续版本及其他同类型业务应用(包括新开发的业务应用)的资源分配,以及指导新采购的服务器进行容量管理。

在本发明的一个实施例中,根据该查找到的性能测试结果集为该当前业务应用分配服务器资源包括:参考当前业务应用的性能指标,在性能测试结果集中,查找对应的配置,按照查找结果为当前业务应用分配对应配置的服务器资源。本实施例中,性能指标包括如下指标中的一种或者多种:

业务应用欲实现的并发用户数;

业务应用欲达到的平均响应时间;

业务应用申请服务器资源的用途;

业务应用是否支持集群性能。

在本发明的一个实施例中,在根据当前业务应用类型的判断结果确定了当前业务应用对应的性能测试结果集后,对于当前业务应用申请服务器资源的用途进行判断,根据判断结果在与性能测试结果集中,查找对应用途分配的内存、磁盘空间和CPU线程数,并根据内存、磁盘空间和CPU线程数对当前业务应用进行初次的服务器资源分配。本实施例中,对于当前业务应用申请服务器资源的用途进行判断具体是根据当前业务应用是否存在异步交互以及总请求数来判断当前业务应用申请服务器资源判断业务应用是用作哪类服务器。

服务器在分配资源时,先对申请服务器资源的用途进行分类,根据用途不同,从性能测试结果集中查找同类型业务应用不同用途对应分配的资源数据。例如从性能测试结果集中查找到用作前端服务器的分配2核的CPU(2C)、4G内存、10G磁盘,用作后端服务器的分配4核的CPU(4C)、8G内存、 10G磁盘,用作数据库服务器的分配4核的CPU(4C)、4G内存、100G磁盘。这组数据是服务器在分配资源时的一个默认配置。

这样,申请服务器资源的当前业务应用只需要告诉服务器,申请服务器资源的用途相关的参数,服务器根据业务应用的类型在性能测试结果集中查找不同用途对应的服务器资源分配数据,并根据得到的这些服务器资源分配数据向当前业务应用分配服务器资源。如此无需对当前业务应用进行性能测试,也能向当前业务应用分配合适的服务器资源。

并且,本发明的这种分配服务器资源的方法还可以避免只根据业务应用的需求来分配服务器资源造成的资源浪费和资源分配不足,例如,当前业务应用在申请服务器资源时,请求分配100G磁盘,用于存储1年的测试数据。服务器端在收到请求后在通过在性能测试结果集中查找对应存储1年测试数据的磁盘所需的空间大小,将该查找到的磁盘空间分配给当前业务应用,此时向当前业务应用分配的磁盘空间可能不等于其请求的100G磁盘空间。服务器根据存储1年测试数据真实占用多大磁盘空间进行测试和假设后的结果来分配,例如用户浏览一个网站,每点击一下,系统记录用户行为日志产生一条数据,假设同类型业务应用一天大概有多少用户使用,产生多少日志,从而大概计算出1年的数据占用多大磁盘空间,并将这些数据存入性能测试结果集中,供服务器分配资源时参考。

需要强调的是,本发明的这种分配服务器资源的方法是一种通过性能测试结果集的管理来实现容量管理。容量管理不是库房管理,其主要是在硬件基础上的软件虚拟化技术,容量管理同样受软件和硬件的制约。申请服务器资源的应用的各指标之间并不是线性相关的,具体分配资源时只能通过对各种应用进行性能测试,汇总出各种经验案例存储到性能测试结果集中。因而,在根据性能测试结果集在具体分配服务器资源时,申请服务器资源的应用的各个性能指标之间可以单独使用,也可以组合使用。

例如,当前业务应用在申请服务器资源时,明确申请一台服务器用作功能测试,没有提出其他需求,那么,服务器就会在性能测试结果集中查找一 个做功能测试服务器的默认配置,按照这个默认配置给当前业务应用分配资源。

或者,当前业务应用在想申请服务器资源做数据处理,预期目标是2000并发用户数,其他指标项不明确,那么,服务器就到性能测试结果集中找到后端服务器处理能力达到2000并发用户数的其他配置参数,按照查找到的其他配置参数整体配置资源给当前业务应用。

或者,当前业务应用申请服务器资源欲实现2000并发用户数,16核(16C)CPU线程资源、32G内存,用于数据处理,服务器查询性能结果集后发现实现2000并发用户数不需要16C的CPU线程资源,也不需要32G的内存资源,那么,服务器拒绝当前业务应用的请求并只按照性能测试结果集中的数据,分配一个支持2000并发用户数对应的配置给当前业务应用。

又或者,当前业务应用申请一个数据库服务器(申请服务器资源用作数据库存储)以存储一年的数据,发起的申请请求为500G磁盘空间,其他配置没有限制,那么服务器在性能测试结果集中查找对应500G磁盘空间的操作量级,将找到的配置数据例如4C、4G内存、500G磁盘数据库资源分配给当前业务应用。

在本发明的一个实施例中,如果申请服务器资源的当前业务应用还有进一步的需求例如并发用户数、事务平均响应时间等,那么业务应用再次请求服务器资源时,服务器在初次分配给当前业务应用的资源的基础上判断是扩容还是增加数据量。例如,初次分配服务器资源时,当前业务应用分配到了2C的CPU、4G的内存和10G的磁盘,当前业务应用申请服务器资源是为了进行功能测试,没多少并发用户数(并发用户数是在同一时刻与服务器进行了交互的在线用户数量)。但是,如果当前业务应用的需求发生了改变,申请服务器资源是为了做生产环境,需要支持较多的用户同时与服务器进行交互,那么2C的CPU、4G内存和10G磁盘这个配置就需要扩容。服务器要根据当前业务应用的并发用户数,在与当前业务应用类型相同的业务应用对应的性能测试结果集中查找同一并发用户数对应分配的内存、磁盘空间和CPU线 程数,并根据内存、磁盘空间和CPU线程数对当前业务应用进行二次的服务器资源分配。另外,如果向服务器申请资源的业务应用是一个新产品可能还无法确定并发用户数,这样服务器可以先按照默认配置(例如2C的CPU、4G内存和10G磁盘)分配服务器资源给当前业务应用。

在本发明的其他实施例中,服务器可根据业务应用的一个性能指标即是否支持集群性能进行资源分配,具体的,根据当前业务应用是否有集群要求,在性能测试结果集中查找有集群要求和无集群要求分别对应分配的内存、磁盘空间和CPU线程数,并分配相同的内存、磁盘空间和CPU线程数给当前业务应用。集群技术是一组相互独立的、通过高速网络互联的计算机,用户与集群相互作用时,集群服务器可看作一个独立的服务器,集群配置能够提高服务器的可用性。本发明实施例主要解决带宽、硬件、稳定性等配置都较高的高配服务器的资源分配问题,高配服务器上可虚拟出多台虚拟机。服务器在面对申请服务器资源的当前应用时,如果申请服务器资源的当前业务应用有集群或者高可用性要求,那么服务器在与当前业务应用类型相同的业务应用对应的性能测试结果集中查找有集群要求和无集群要求分别分配的内存、磁盘空间和CPU线程数,通常而言,如果当前业务应用有集群要求的,服务器会分配2台配置相同(内存、磁盘空间和CPU线程数目相同)的虚拟机或者更多的Java虚拟机给当前业务应用,如果当前业务应用没有集群要求的,服务器通常会分配1台虚拟机给当前业务应用。

图2是本发明一个实施例的提供的性能测试结果集示意图,参见图2,图2示出了不同并发用户数、事务的平均响应时间以及所需的JVM内存大小之间的关系。在一定充裕的硬件资源下,通过改变业务应用所需JVM的大小获取不同的性能表现作为该业务应用的样本数据,许多样本数据汇集得到业务应用的性能测试结果集。目前的业务应用一般都是基于J2EE(Java 2Platform Enterprise Edition)平台开发的,这类业务应用需要Java虚拟机JVM(Java Virtual Machine)才能运行,JVM使用的是服务器的物理内存。

通过响应时间和所需JVM内存大小来确定并发用户数所需合理的物理 内存大小。然后通过进程绑定CPU技术降低业务应用所使用的CPU线程数,再测试一组数据来判断相同并发用户数和JVM内存下,所需多少CPU线程最合理。

需要说明的是,图2只是示意性的示出了性能测试结果集中很小一部分数据,不表示性能测试结果集的全部。具体实施时,服务器获取到的不同类型业务应用对应的性能测试结果集中可能包含很多组数据,例如不同并发用户数与所需JVM内存之间的对应关系,不同并发用户数与所需CPU线程之间的对应关系等等。服务器在收到申请服务器资源的当前业务应用的请求后,根据当前业务应用的类型在对应的性能测试结果集中查找所需资源配置数据,并根据找到的资源配置数据向当前业务应用分配合适的CPU线程、内存和磁盘资源。

与上述分配服务器资源的方法相对应的,本发明还提供了一种分配服务器资源的装置,该分配服务器资源的装置300包括:

性能测试结果集获取单元310,用于获取不同类型业务应用对应的性能测试结果集;

应用类型判断单元320,用于接收当前业务应用申请服务器资源的请求,并对所述当前业务应用的类型进行判断;

资源分配单元330,用于根据所述应用类型判断单元的判断结果,在所述性能测试结果集获取单元获取的性能测试结果集中,查找与所述当前业务应用类型相同的业务应用及该类型相同的业务应用对应的性能测试结果集,根据该查找到的性能测试结果集为该当前业务应用分配服务器资源。

在本发明的一个实施例中,该分配服务器资源的装置300还包括:性能指标参考单元,用于参考所述当前业务应用的性能指标,在所述性能测试结果集中,查找对应的配置,按照查找结果为所述当前业务应用分配对应配置的服务器资源。

在本发明的一个实施例中,当前业务应用的性能指标包括如下指标中的 一种或者多种:

业务应用欲实现的并发用户数;

业务应用欲达到的平均响应时间;

业务应用申请服务器资源的用途;

业务应用是否支持集群性能。

在本发明的一个实施例中,性能指标参考单元具体用于根据当前业务应用是否存在异步交互以及总请求数确定出当前业务应用申请服务器资源是作为前端服务器、后端服务器或数据库服务器。

在本发明的一个实施例中,服务器资源包括:

硬盘空间资源、内存资源和CPU进程资源。

由于目前一个公司往往不只上线一款产品,而每款产品可能所属领域的不同,性能指标也不相同。企业可以本发明的方法通过性能测试结果,汇聚成一个性能测试结果集,帮助企业进行容量管理。

本发明的这种技术方案的一个具体的应用场景是:企业的资源管理部门和申请资源的部门是两个不同的部门,业务没有交集。资源管理部门对申请资源的部门的申请一般应该分配多少资源最合适,不清楚。例如申请资源的部门要申请两台服务器一台用于应用服务器,一台用于数据库服务器。资源管理部门分配2台机器(其中,数据库服务器的磁盘空间为20G)给申请资源部门使用,申请资源部门使用过程中发现数据库服务器磁盘空间不足了,申请资源部门会继续申请磁盘扩容,因为20G的磁盘空间,去掉操作系统,软件的占用,实际只有几G的磁盘空间可以使用。由于资源管理部门没有数据量级的概念,所以不会预先分配大的磁盘空间给申请资源的部门,这往往会造成资源的浪费和资源分配不足的问题。此时,如果能够有一个有效参考标准去指导资源分配部门的分配工作,就可以基本解决资源分配中存在的上述问题。因此,在资源分配之前,如果通过性能测试获取性能测试结果集(该性能测试结果集通常是根据该企业的多个产品性能测试后得到的结果进行汇 总)从而确定出的一个参考标准,将这个参考标准提供给资源管理部门使用,得到数据库服务器应当分配的磁盘空间的容量,那么可以一次性分配一个合理的磁盘空间给申请资源的部门,能够方便资源分配工作、提高资源分配的效率。

需要说明的是,本发明的这种分配服务器资源的装置是和前述的分配服务器资源的方法相对应的,因而本实施例中分配服务器资源的装置的工作过程可以参见前述分配服务器资源的方法部分的具体说明,在此不再赘述。

综上所述,本发明的这种分配服务器资源的方法通过获取不同类型业务应用的性能测试结果集,服务器在面对申请服务器资源的当前业务应用时,根据当前业务应用的类型在已获取到的同类型业务应用对应的性能测试结果集中查找相应的资源配置数据,实现了在不对当前业务应用进行性能测试的前提下,也能为当前业务应用分配合适的服务器资源,简化了服务器资源分配的过程,实现了服务器容量管理。此外,本发明还提供了一种与上述分配服务器资源的方法相对应的分配服务器资源的装置,该分配服务器资源的装置可以为申请服务器资源的业务应用分配合理的资源,提高了容量管理的效率。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1