云计算服务器的功耗和资源竞争协同控制的服务质量保障方法与流程

文档序号:15521351发布日期:2018-09-25 19:32阅读:238来源:国知局

本发明涉及云计算体系结构中的服务器,更特别地说,是指一种适用于云计算服务器的功耗和资源竞争协同控制的服务质量(qos)保障方法。



背景技术:

随着云计算、深度学习、移动互联网等信息技术的快速发展,面向用户的实时应用变得越来越多样化,如web搜索、联机事务处理、语音识别、人脸验证、实时翻译等正逐渐改变着人们的生产生活方式。用户能否在这些交互式应用中能否获得满意的体验,不仅与程序功能是否人性化、操作是否方便化有关,而且在很大程度上取决于“用户请求—服务应答”的端到端延迟。若无法保障交互式应用的延迟,则用户体验将会变得很差,因此这类应用通常被称为延迟敏感性应用。

数据中心作为应用服务运行的后台场所,其基础设施条件,如服务器性能、网络质量、电能供应,对保障服务的延迟起着重要作用,良好的基础设施能够为应用提供稳定、可靠的运行环境,从而提高服务的响应速度、保障服务质量(qualityofservice,qos)。通常,为了保障用户请求的处理延迟,服务提供商会将实时应用运行在专属服务器上,从而避免后台作业对共享资源,如最后一级缓存(lastlevelcache)、内存带宽的争用。但这种保守的服务质量保障方式不仅造成了严重的资源(处理能力、存储、功耗)浪费,如google、亚马逊、微软等数据中心服务器利用率仅为5%~30%,而且加大了服务提供商对基础设施投资的费用。为了改善数据中心资源利用率低的现状,越来越多的研究人员提出将批处理作业和延迟敏感型应用同时运行在同一服务器上(简称混合运行)。通过对软硬件控制方法,如cache分区、内存带宽预留、批处理作业动态调度等,将共享资源按应用的优先级进行分配或隔离,从而在保障延迟敏感性应用服务质量的前提下,提高服务器资源的利用率。

应用混合运行是提高服务器资源利用率的有效手段,但设计有效的动态资源调度与隔离技术,在保证延迟敏感性应用服务质量的同时最大程度的提高批处理作业的吞吐量仍然是目前工业界和学术界面临的难题。这是因为:(一)用户(user)请求的到达时间是不可预测的。服务器(server)处理用户(user)请求时间取决于实时负载(load),因此准确地估算延迟敏感型应用(delay-sensitiveapplications)需要的资源是非常困难的,而且批处理任务(task)与延迟敏感型应用(delay-sensitiveapplications)混合运行将进一步干扰估算的准确性。(二)如何有效地控制服务器功耗(powerconsumption)。应用混合运行会显著提高服务器的动态功耗。为了保障数据中心硬件资源和降低每年的电能消耗,服务提供商往往会限制各级集群的电能配额。如使用功耗封顶(powercap)技术限制服务器的功耗不大于70w。当批处理任务(task)与延迟敏感型应用(delay-sensitiveapplications)的总体功耗达到限制值时,服务器会强制降低处理器(cpu)的主频来减少整体功耗。然而这种强制降低主频的方式对延迟敏感型应用(delay-sensitiveapplications)是透明的,短暂的处理器(cpu)主频降低对批处理作业的平均处理时间并不会造成很大影响,但却会严重增加延迟敏感型应用(delay-sensitiveapplications)的处理时间,造成服务质量(qualityofservice,qos)的下降。

综上可以看出,服务器的功耗(powerconsumption)、利用率(utilizationrate)与服务质量(qualityofservice,qos)保障是目前服务提供商需要同时考虑的三个重要问题。然而现有的技术往往将服务质量、资源利用率与功耗这三个指标分开考虑,这种单指标(或双指标)的优化并不能对云计算系统的运行提供很好地指导,因此如何设计有效的资源控制与调度机制对三个指标同时进行优化对改善云计算系统可用性、服务时效性起着至关重要的作用。



技术实现要素:

针对目前云计算体系结构中服务器存在的资源利用率低下的现状以及现有技术存在的缺陷和改进需要,本发明提出一种适用于云计算体系结构中服务器的功耗和竞争协同控制的服务质量保障方法。

本发明的一种云计算服务器的功耗和资源竞争协同控制的服务质量保障方法,1)提出了一种融合功耗竞争控制和最后一级缓存资源竞争控制的服务质量保障方法,为功耗受限数据中心提供一种保障服务质量、提高资源利用率的手段;2)提出了一种结合离线分析和在线优化选择的主频设置方法,能够更好地适应延迟敏感型应用对资源的动态需求;3)根据负载高低调节监测周期,能够更好地适应延迟敏感型应用负载的随机性;4)选择能够保障延迟敏感型应用服务质量的最低主频,既提高了能量效率又有利于提高服务器资源利用率;5)根据延迟敏感性应用的需求不断调节批处理作业所在处理器的主频能够在满足功耗和服务质量保障的要求下最大限度提高批处理作业的吞吐量。本发明克服了传统单目标或双目标优化方法在保障延迟敏感型应用服务质量时无法兼顾功耗或批处理作业吞吐量的缺陷,通过离线分析和在线优化配置方法简化了多目标优化过程,能够有效指导数据中心服务器任务调度和资源优化配置。

本发明的一种云计算服务器的功耗和资源竞争协同控制的服务质量保障方法,其包括有下列步骤:

步骤一,初始化云计算体系服务器,并设置下列各项参数;

第一方面将服务器的电源管理驱动设置为高级配置与电源接口模式;

第二方面将服务器中所有处理器的管理模式设置为用户空间模式;

云计算体系服务器中处理器根据运行的程序不同可以分为应用型处理器processorapp、测试软件型处理器processorruler和任务型处理器processortask

第三方面采用功耗测试软件获取云计算体系服务器在空闲时的静态功耗和在工作时的动态功耗;空闲时的静态功耗记为工作时的动态功耗记为

第四方面选取出云计算体系服务器中处理器的最小主频fmin和最大主频fmax,并作为处理器的主频调节范围[fmin,fmax];

第五方面设置云计算体系服务器的操作系统;

第六方面设置云计算体系服务器的功耗上限,记为服务器功耗阈值pc上限;

步骤二,设置云计算体系服务器的监测时长;

将应用型处理器processorapp完成当前队列中的请求所需的处理时间,作为本轮监测时长,然后执行步骤三;

步骤三,设置云计算体系服务器的动态功耗系数;

动态功耗系数记为w,即然后执行步骤四;

步骤四,将云计算体系服务器的所有处理器的主频调节步长设置为相同步长,然后执行步骤五;

步骤五,记录负载—缓存压力的关联数据,然后执行步骤六;

利用缓存压力测试程序来测量负载产生的缓存压力,记为负载缓存压力st;在所述st下的应用型处理器processorapp执行延迟敏感型应用时,能够保障服务质量所需的最低主频,记为lfmin,所述lfmin也是负载—缓存压力关联数据;记录多个负载在st下的最低主频构成延迟敏感型应用的负载与缓存压力的关联数据信息,所述负载与缓存压力的关联数据信息以表格式记录,表格中第一列项填写缓存压力级数,表格中第一行项填写负载名称;

步骤六,记录任务—主频的关联数据,然后执行步骤七;

利用缓存压力测试程序来测量任务产生的缓存压力,记为任务缓存压力st_task;在所述st_task下的多个任务处理器processortask运行多个任务时,产生的缓存压力构成任务与主频的关联数据信息,所述任务与主频的关联数据信息以表格式记录,表格中第一列项填写处理器的名称和主频参数,表格中第一行项填写任务名称;

步骤七,配置延迟敏感型应用的基准主频并挂起或恢复任务;

根据负载与缓存压力的关联数据信息得到所在处理器processorapp的队列中的请求个数,设置属于延迟敏感型应用的基准主频,记为fb;

若fb≥fmax且有任务还在运行,则使用信号量挂起该任务,而后转入步骤八;

若fb<fmax且有任务被挂起,则使用信号量恢复该任务,为了使被挂起的任务的状态变为运行;若此时有批处理作业需要调度且有空闲任务处理器processortask则转入步骤五,若此时有批处理作业需要调度而没有空闲任务处理器processortask则转入步骤二;

步骤八,调制与延迟敏感型应用同时运行的单个任务所在处理器的主频;

步骤8-1,计算云体系计算机服务器当前的总功耗,记为pcur;即延迟敏感型应用所在处理器的功耗、任务所在处理器的功耗和静态功耗之和,

q表示云计算体系服务器中处理器的总个数,q表示处理器的标识号;h表示云计算体系服务器中应用型处理器processorapp的总个数,h∈q,h表示应用型处理器processorapp的标识号;j表示云计算体系服务器中任务型处理器processortask的总个数,j∈q,j表示任务型处理器processortask的标识号;h+j<q;

表示应用型处理器processorapp的利用率;

表示应用型处理器processorapp的主频;

表示任务型处理器processortask的利用率;

表示任务型处理器processortask的主频;

步骤8-2,根据步骤一确定的功耗上限pc上限和所述pcur计算剩余功耗pleft,即pleft=pc上限-pcur;

步骤8-3,根据所述的剩余功耗pleft从任务与主频的关联数据信息中选择满足剩余功耗要求的任务,并将该任务作为预选任务;

步骤8-4,根据负载与缓存压力的关联数据信息中的缓存压力信息,计算出服务器上已经运行的任务对缓存产生的压力,以及步骤8-3得到的预选任务对缓存产生的压力;

步骤8-5,根据步骤8-4得到的两个缓存压力之和,查找延迟敏感型应用的任务与主频的关联数据信息中是否有主频能够满足延迟敏感型应用服务质量保障的要求;

若任务与主频的关联数据信息中的主频有小于两个缓存压力之和的主频,则不调入预选任务;

若任务与主频的关联数据信息中的主频有大于等于两个缓存压力之和的主频,则选取出该主频对应的处理器;然后,判断选取的处理器的功耗是否小于pc上限,是,则调入预选任务;若选取的处理器的功耗大于等于pc上限,则从任务与主频的关联数据信息中选择预选任务对应的处理器及该处理器的主频;然后执行步骤九;

步骤九运行延迟敏感型应用和所有任务;

根据步骤八得到的处理器主频,运行延迟敏感型应用和所有没有挂起的任务,在本周期结束时,若服务器继续运行则转入步骤二,否则退出结束本轮的云计算服务器的功耗和资源竞争协同控制。

本发明方法的优点在于:

①能够根据将多个批处理作业(任务)和延迟敏感型应用同时运行在一个服务器上,在保障延迟敏感型应用的服务质量前提下提高了服务器利用率。

②同时将服务质量,服务器利用率以及服务器功耗作为限制条件,能够满足云计算系统功耗限额的要求。

③监测周期随负载不同而动态改变,避免固定监测周期造成的延迟敏感型应用的服务质量违反。

④利用目前主流服务器的硬件特性和功能,从软件角度进行功耗与利用率的控制,增加了灵活性,且易于在云系统上部署。

附图说明

图1是一个典型系统的服务质量(qualityofservice,qos)分层情况结构图。

图2是本发明云计算服务器的功耗和资源竞争协同控制的服务质量保障方法的流程图。

图3是使用一种搜索引擎程序下,采用本发明方法获得的服务器的利用率。

图4是使用组合搜索引擎程序下,采用本发明方法获得的服务器的利用率。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

参见图1所示的一个典型系统的服务质量(qualityofservice,qos)分层情况结构图,对于qos定义的分层包括有用户、应用、系统、设备以及网络设备。参考2004年4月第1版出版的《计算机网络的服务质量(qos)》,作者林闯、单志广、任丰原,第10~11页。

为了解决云计算体系结构中服务器存在的资源利用率低下的现状,本发明以应用qos、系统qos和设备qos三者结合进行功耗和资源竞争协同控制,更优选系统qos,达到服务质量保障,具体执行步骤如图2所示。

本发明的一种适用于云计算体系服务器的功耗和资源竞争协同控制的服务质量保障方法,其包括以下步骤:

步骤一,初始化云计算体系服务器,并设置下列各项参数;

第一方面将服务器的电源管理驱动设置为高级配置与电源接口模式(记为acpi接口模式);所述acpi接口模式是指高级配置与电源接口(英文:advancedconfigurationandpowerinterface,acpi),是1997年由英特尔、微软、东芝公司共同提出、制定提供操作系统应用程序管理所有电源管理接口,是一种工业标准,包括了软件和硬件方面的规范。

第二方面将服务器中所有处理器的管理模式设置为用户空间模式(记为usp模式);在本发明中,云计算体系服务器中处理器根据运行的程序不同可以分为应用型处理器processorapp、测试软件型处理器processorruler和任务型处理器processortask

ondemand、userspace和performance分别是linux系统中三种cpu频率调节方式。ondemand指的是平时以低速方式运行,当系统负载提高时候自动提高频率。以这种模式运行不会因为降频造成性能降低,同时也能节约电能和降低温度。performance指满速运行,即使系统负载非常低cpu的频率也为最高。则性能很好,但是电量消耗较快,温度也高一些。userspace的含义是任何情况下都会控制cpu运行在配置的频率范围内,配置中的用户自己添加的省电设置。如休眠/待机,用于控制休眠/待机状态下cpu的运行频率。在此情景模式下,降低cpu最大运行频率可以延长电池待机时间,但同时也会降低机器的唤醒速度。

第三方面采用功耗测试软件获取云计算体系服务器在空闲时的静态功耗和在工作时的动态功耗;空闲时的静态功耗记为工作时的动态功耗记为

在本发明中,工作时的动态功耗等于服务器中所有处理器的动态功耗之和,即q表示云计算体系服务器中处理器的总个数,q表示处理器的标识号,processorq表示任意一个处理器,表示任意一个处理器在工作时的动态功耗。

在本发明中,功耗测试软件可以是huazhezhang在github网站上开源的项目中的功耗测量软件。

第四方面选取出云计算体系服务器中处理器的最小主频fmin和最大主频fmax,并作为处理器的主频调节范围[fmin,fmax];在本发明中,计算体系服务器中的所有处理器都有工作频率范围,这个工作频率范围是由处理器生产厂家在出厂前就拟定好的。

第五方面设置云计算体系服务器的操作系统;在本发明中,操作系统优选linux。一般运行linux系统情况下,应用型处理器processorapp用来执行延迟敏感型应用,而任务在任务型处理器processortask中处理。

第六方面设置云计算体系服务器的功耗上限,记为服务器功耗阈值pc上限;在本发明中,采用功耗设置软件raplsetpowerseprate进行设置此参数。而功耗设置软件raplsetpowerseprate可以是huazhezhang在github网站上开源的项目。

步骤二,设置云计算体系服务器的监测时长;

将应用型处理器processorapp完成当前队列中的请求所需的处理时间,作为本轮监测时长,然后执行步骤三;

步骤三,设置云计算体系服务器的动态功耗系数;

在本发明中,由于任意一个处理器在工作时的动态功耗与该处理器的利用率和主频的乘积成正比关系,则有其中w为动态功耗系数,所述然后执行步骤四;

步骤四,将云计算体系服务器的所有处理器的主频调节步长设置为相同步长,然后执行步骤五;

步骤五,记录负载—缓存压力的关联数据,然后执行步骤六;

在本发明中,利用缓存压力测试程序来测量负载产生的缓存压力,记为负载缓存压力st;在所述st下的应用型处理器processorapp执行延迟敏感型应用时,能够保障服务质量(qos)所需的最低主频,记为lfmin,所述lfmin也是负载—缓存压力关联数据;记录多个负载在st下的最低主频构成了本发明中的表1。

在本发明中,表1的名称为延迟敏感型应用的负载与缓存压力的关联数据信息,表1的表格式中第一列项填写缓存压力级数,表1的表格式中第一行项填写负载名称。

在本发明中,级数划分是以每秒请求延迟敏感型应用的个数来定的。举例,n表示缓存压力级数的标识号,若每秒有n<10个延迟敏感型应用请求到达服务器,则记为级数0;若每秒有10≤n<100个请求到达服务器,则记为级数1;依此类推来定义缓存压力级数,请求数量通过云计算系统的计数器来记录。

步骤六,记录任务—主频的关联数据,然后执行步骤七;

在本发明中,利用缓存压力测试程序来测量任务产生的缓存压力,记为任务缓存压力st_task;在所述st_task下的多个任务处理器processortask运行多个任务时,产生的缓存压力构成表2。

在本发明中,表2的名称为任务与主频的关联数据信息,表2的表格式中第一列项填写处理器的名称和主频参数,表2的表格式中第一行项填写任务名称。

步骤七,配置延迟敏感型应用的基准主频并挂起或恢复任务;

根据表1收集的参数信息和延迟敏感型应用所在处理器processorapp的队列中的请求个数,设置属于延迟敏感型应用的基准主频,记为fb;

若fb≥fmax且有任务还在运行,则使用信号量挂起该任务,而后转入步骤八;

若fb<fmax且有任务被挂起,则使用信号量恢复该任务,为了使被挂起的任务的状态变为运行;若此时有批处理作业需要调度且有空闲任务处理器processortask则转入步骤五;若此时有批处理作业需要调度而没有空闲任务处理器processortask则转入步骤二;

步骤八,调制与延迟敏感型应用同时运行的单个任务所在处理器的主频;

步骤8-1,计算云体系计算机服务器当前的总功耗,记为pcur;即延迟敏感型应用所在处理器的功耗、任务所在处理器的功耗和静态功耗之和,

q表示云计算体系服务器中处理器的总个数,q表示处理器的标识号;h表示云计算体系服务器中应用型处理器processorapp的总个数,h∈q,h表示应用型处理器processorapp的标识号;j表示云计算体系服务器中任务型处理器processortask的总个数,j∈q,j表示任务型处理器processortask的标识号;h+j<q;

表示应用型处理器processorapp的利用率;

表示应用型处理器processorapp的主频;

表示任务型处理器processortask的利用率;

表示任务型处理器processortask的主频;

步骤8-2,根据步骤一确定的功耗上限pc上限和所述pcur计算剩余功耗pleft,即pleft=pc上限-pcur;

步骤8-3,根据所述的剩余功耗pleft从任务与主频的关联数据信息(表2)中选择满足剩余功耗要求的任务,并将该任务作为预选任务;

步骤8-4,根据负载与缓存压力的关联数据信息(表1)中的缓存压力信息,计算出服务器上已经运行的任务对缓存产生的压力,以及步骤8-3得到的预选任务对缓存产生的压力;

步骤8-5,根据步骤8-4得到的两个缓存压力之和,查找延迟敏感型应用的任务与主频的关联数据信息(表2)中是否有主频能够满足延迟敏感型应用服务质量保障的要求;

若任务与主频的关联数据信息(表2)中的主频有小于两个缓存压力之和的主频,则不调入预选任务;

若任务与主频的关联数据信息(表2)中的主频有大于等于两个缓存压力之和的主频,则选取出该主频对应的处理器;然后,判断选取的处理器的功耗是否小于pc上限,是,则调入预选任务;若选取的处理器的功耗大于等于pc上限,则从任务与主频的关联数据信息(表2)中选择预选任务对应的处理器及该处理器的主频;然后执行步骤九;

在本发明中,若有多个预选任务将重复执行步骤八。本发明的步骤八是为达到选择出与延迟敏感型应用同时运行的所有任务。

步骤九运行延迟敏感型应用和所有任务;

根据步骤八得到的处理器主频,运行延迟敏感型应用和所有没有挂起的任务,在本周期结束时,若服务器继续运行则转入步骤二,否则退出结束本轮的云计算服务器的功耗和资源竞争协同控制。

本发明适用于在功耗受限数据中心服务器上保障延迟敏感型应用的服务质量和提高资源利用率,避免了传统的单目标或双目标优化方法的缺点,通过对延迟敏感型应用进行离线分析,能够得到延迟敏感型应用在不同的负载以及最后一级缓存压力下保障服务质量所需要的cpu主频,通过对批处理作业(任务)进行分析能够得到批处理作业运行时的功耗和对最后一级缓存的压力,利用离线分析得到的信息选择合适的批处理作业与延迟敏感型作业混合运行,并且根据延迟敏感性作业不同阶段的负载动态配置cpu主频,从而为数据中心服务器资源优化配置提供了有效地指导。

实施例1

在实施例1中,延迟敏感型应用选用xapian(译文,泽品)一款开源的搜索引擎程序,而任务选用了milc、lbm、libquantum、soplex、mcf。

mcf:minimumcostflow(最小费用流程序)。

lbm:latticeboltzmannmethod(格子玻尔兹曼方法程序)。

milc:mimdlatticcomputation(多指令多数据栅格计算程序)。

libquantum:libraryforthesimulationofaquantumcomputer(模拟量子计算机的库程序)。

soplex:solvesalinearprogramusingthesimplexalgorithm(使用单纯性方法解决线程规划的程)。

图3是xapin分别和mcf,lbm,milc,libquantum,soplex在一台功耗限制为80瓦的服务器上运行,采用flux方法(flux_80w)和本发明方法(ours_80w),在保障xapin处理延迟的情况下,获得的服务器的利用率。横轴为任务,纵轴为服务器的利用率(utilizationrate)。从图3中能够明显的看出应用了本发明方法的服务器利用率得到了提高。

图4是从mcf,lbm,milc,libquantum,soplex随机选取四组,每组两个程序(milc+mcf,lbm+mcf,libquantum+mcf,soplex+mcf)分别与xapian在一台功耗限制为80瓦的服务器上运行,采用flux方法(flux_80w)和本发明方法(ours_80w),在保障xapin处理延迟的情况下,获得的服务器的利用率。从图4中能够明显的看出应用了本发明方法的服务器利用率得到了提高。

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