弹性调度资源的方法、装置、服务器及存储介质与流程

文档序号:17481060发布日期:2019-04-20 06:27阅读:204来源:国知局
本发明涉及测试
技术领域
:,具体涉及一种弹性调度资源的方法、装置、服务器及存储介质。
背景技术
::目前针对金融测试领域,乃至整个测试行业,在高并发引用场景下,没有完善的弹性调度资源的解决方案。压力测试通常是对系统的并发处理能力进行测试,通过客户端的响应时间和服务器端的监测情况来判断系统是否达到系统性能指标。现有的压力测试方案中,当用户大量访问引发峰值流量情况时,为了保证业务的正常运行,会获取服务器的内容和cpu等使用情况,手动对服务器进行调度或部署来分配资源。但在多数情况下,由于手动调度存在不具备实时性和弹性调度的可能,会带来无法预测业务的的运行情况和对资源需求的快速响应的缺陷。技术实现要素:鉴于以上内容,有必要提出一种弹性调度资源的方法、装置、服务器及存储介质,能够进行快速响应,及时扩缩资源,保障系统稳定运行。本发明的第一方面提供一种弹性调度资源的方法,所述方法包括:生成压力测试文件,其中,所述压力测试文件包括待测项目和测试实例信息;根据所述压力测试文件执行压力测试;根据所述待测项目和测试实例信息,采集所述测试实例在测试过程中的性能数据;及监控和分析所述性能数据,并根据所述性能数据判断是否需要弹性扩缩容调整。优选地,在根据所述压力测试文件执行压力测试之前,所述弹性调度资源的方法还包括配置生产环境和压测请求数据的步骤。优选地,所述根据所述性能数据判断是否需要弹性扩缩容调整的方法包括:获取根据实际生产中业务运行状况和经验值得到的所述性能数据的上限阈值和下限阈值;当测试过程中的性能数据大于上限阈值时,进行弹性扩容调整;当测试过程中的性能数据小于下限阈值时,进行弹性缩容调整;当测试过程中的性能数据大于等于所述下限阈值且小于等于所述上限阈值时,保持业务正常运行。优选地,所述当测试过程中的性能数据大于所述上限阈值时,进行弹性扩容调整的步骤包括:增加由主服务器和至少一个从属服务器组成的一组服务器资源。优选地,所述监控和分析所述性能数据的步骤包括:将所述从属服务器作为从节点,所述从属服务器对应的主服务器作为主节点;所述从节点周期性向所述主节点发送所述从属服务器的性能数据和空闲资源信息。优选地,根据所述性能数据判断是否需要弹性扩缩容调整的步骤还包括:根据所述性能数据和获取的从节点的空闲资源筛选从节点。优选地,当测试过程中的性能数据大于所述上限阈值,保留空闲的中央处理器cpu的个数大于或等于实际生产中业务执行所需的中央处理器cpu的个数且所述空闲的内存资源大于或等于实际生产中业务执行所需的内存资源的从节点;当测试过程中的性能数据小于所述下限阈值,删除所述空闲的中央处理器cpu的个数小于实际生产中业务执行所需的中央处理器cpu的个数和/或所述空闲的内存资源小于实际生产中业务执行所需的内存资源的从节点。本发明的第二方面提供一种弹性调度资源的装置,所述装置包括:施压模块,用于生成压力测试文件,其中,所述压力测试文件包括待测项目和测试实例信息;执行模块,用于根据所述压力测试文件执行压力测试;数据采集模块,用于根据所述待测项目和测试实例信息,采集所述测试实例在测试过程中的性能数据;及监控模块,用于监控和分析所述性能数据,并根据所述性能数据判断是否需要弹性扩缩容调整。本发明的第三方面提供一种服务器,所述服务器包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述弹性调度资源的方法。本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述弹性调度资源的方法。本发明所述的弹性调度资源的方法、装置、服务器及存储介质,所述方法包括生成压力测试文件,其中,所述压力测试文件包括待测项目和测试实例信息;根据所述压力测试文件执行压力测试;根据所述待测项目和测试实例信息,采集所述测试实例在测试过程中的性能数据;及监控和分析所述性能数据,并根据所述性能数据判断是否需要弹性扩缩容调整。实现自动进行扩缩容,具有很强的实用性和扩展性。针对突发业务高峰和突发流量能够很好的进行应对,保障业务正常运行,也就是说,能够针对峰值流量和多并发等情况发生时,进行快速响应,及时扩缩资源,保障系统稳定运行。减少系统因高并发、高流量或突发流量而引起的业务中断。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1是本发明实施例一提供的用于弹性调度资源的方法的应用环境架构图。图2是本发明实施例二提供的弹性调度资源的方法的流程图。图3是本发明实施例三提供的本发明弹性调度资源的装置较佳实施例中的功能模块图。图4是本发明实施例四提供的服务器的示意图。如下具体实施方式将结合上述附图进一步说明本发明。具体实施方式为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的
技术领域
:的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本发明实施例的弹性调度资源的方法应用在由n组服务器和通过网络与所述n组服务器进行连接的客户端所构成的硬件环境中。所述n组服务器中的一组包括一个主服务器(master)和从属于所述主服务器的至少一个从属服务器(slave)。所述网络包括但不限于:广域网、城域网或局域网。本发明实施例的弹性调度资源的方法可以由服务器来执行,也可以由客户端来执行;还可以是由服务器和客户端共同执行。所述对于需要进行弹性调度资源的方法的服务器,可以直接在服务器上集成本发明的方法所提供的弹性调度资源的功能,或者安装用于实现本发明的方法的客户端。再如,本发明所提供的方法还可以以软件开发工具包(softwaredevelopmentkit,sdk)的形式运行在服务器等设备上,以sdk的形式提供弹性调度资源功能的接口,服务器或其他设备通过提供的接口即可实现弹性调度资源功能。实施例一参阅图1所示,为本发明实施例一提供的用于弹性调度资源的方法的应用环境架构图。本发明的弹性调度资源的方法应用在客户端1和服务器2构成的环境中。所述服务器2和客户端1之间通过有线或无线网络通信连接。所述有线网络可以为传统有线通讯的任何类型,例如因特网、局域网。所述无线网络可以为传统无线通讯的任何类型,例如无线电、无线保真(wirelessfidelity,wifi)、蜂窝、卫星、广播等。无线通讯技术可以包括,但不限于,全球移动通信系统(globalsystemformobilecommunications,gsm)、通用分组无线业务(generalpacketradioservice,gprs)、码分多址(codedivisionmultipleaccess,cdma),宽带码分多址(w-cdma)、cdma2000、imt单载波(imtsinglecarrier)、增强型数据速率gsm演进(enhanceddataratesforgsmevolution,edge)、长期演进技术(long-termevolution,lte)、高级长期演进技术、时分长期演进技术(time-divisionlte,td-lte)、第五代移动通信技术(5g)、高性能无线电局域网(highperformanceradiolocalareanetwork,hiperlan)、高性能无线电广域网(highperformanceradiowideareanetwork,hiperwan)、本地多点派发业务(localmultipointdistributionservice,lmds)、全微波存取全球互通(worldwideinteroperabilityformicrowaveaccess,wimax)、紫蜂协议(zigbee)、蓝牙、正交频分复用技术(flashorthogonalfrequency-divisionmultiplexing,flash-ofdm)、大容量空分多路存取(highcapacityspatialdivisionmultipleaccess,hc-sdma)、通用移动电信系统(universalmobiletelecommunicationssystem,umts)、通用移动电信系统时分双工(umtstime-divisionduplexing,umts-tdd)、演进式高速分组接入(evolvedhighspeedpacketaccess,hspa+)、时分同步码分多址(timedivisionsynchronouscodedivisionmultipleaccess,td-scdma)、演进数据最优化(evolution-dataoptimized,ev-do)、数字增强无绳通信(digitalenhancedcordlesstelecommunications,dect)及其他。所述客户端1可以包括个人计算机(personalcomputer,pc)、个人数字助理(personaldigitalassistant,pda)、无线手持设备、平板电脑(tabletcomputer)、智能手机等。上述客户端1仅是举例,而非穷举,包含但不限于上述客户端。所述客户端1可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。在本实施例中,所述客户端1上安装有应用程序,当用户需要访问应用程序时,需要发送访问请求至服务器2,所述服务器2响应所述访问请求后返回所述应用程序页面至客户端1。可以理解的是,所述客户端1可以包括多个,多个客户端1可以通过网络向服务器2发送海量访问请求,例如,当电商平台(如京东和天猫)进行618和双11大促时,大量客户端1可以通过网络向服务器2发送海量访问请求。所述应用程序可以是安装于客户端1的操作系统中任一第三方应用,例如微信、微博、爱奇艺、优酷、健康160、京东、百度糯米、百度地图、酷狗音乐、网易云音乐、手机淘宝等应用。本方案对此不作限定。其中,所述操作系统包括android系统、塞班系统、windows系统、ios(苹果公司开发的移动操作系统)系统等。所述客户端1还包括显示屏,所述显示屏可以具有触摸功能,如液晶(liquidcrystaldisplay,lcd)显示屏或有机发光二极管(organiclight-emittingdiode,oled)显示屏。所述显示屏用于显示所述应用程序界面等内容。所述服务器2是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(应用程序licationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。在本实施方式中,所述服务器2包括多组,每一组服务器2由一个主服务器(master)20和从属于所述主服务器20的至少一个从属服务器21(slave)组成。在本实施方式中,所述主服务器20和从属服务器21属于master-slave架构,通常一个主服务器20可以连接n多个从属服务器21实例,每个slave都是一个单独的服务器2,所有slave上面部署的服务器2彼此之间完全等同,但又相互独立。所述主服务器20与所述至少一个从属服务器21之间可以进行分布式通信,所述主服务器20接收到的所有指令(消息生产、确认等)都会同步发送给从属服务器21。例如,一个主服务器20可以与十个从属服务器21通信连接,所述主服务器20将接收到的所有指令同步发送至所述十个从属服务器21。在本实施方式中,所述服务器2还包括一代理服务器(图1中未示出),所述代理服务器用于批量管理所述至少一个从属服务器21。例如,所述代理服务器可以控制所述至少一个从属服务器21的启动、关闭和重启等。可以理解的是,所述代理服务器和所述主服务器20可以配置在一台服务器2中。在另一实施方式中,所述主服务器20可以直接控制所述至少一个从属服务器21。具体而言,建立所述主服务器20与每个所述从属服务器21之间的信任关系,所述主服务器20选择需要控制的从属服务器21,所述主服务器20接收操作指令,及根据所述操作命令远程控制被选择的从属服务器21执行相关操作。实施例二图2是本发明实施例二提供的弹性调度资源的方法的流程图。根据不同的需求,所述流程图中的执行顺序可以改变,某些步骤可以省略。步骤s21、生成压力测试文件,其中,所述压力测试文件包括待测项目和测试实例信息。在一实施方式中,所述压力测试文件可以通过用户操作一ui界面来生成。所述ui界面显示有待测项目和测试实例信息,用户通过选定待测项目及测试实例来生成一压力测试文件。所述待测项目包括待测接口信息等,所述测试实例信息包括从属服务器的ip信息。在另一实施方式中,还可以通过输入一命令行来调用所述压力测试文件。步骤s22、根据所述压力测试文件执行压力测试。优选地,在根据所述压力测试文件执行压力测试之前,所述弹性调度资源的方法还包括配置生产环境和压测请求数据的步骤。具体地,所述弹性调度资源的方法用于在生产环境下,根据压力测试文件和压测请求数据执行压力测试。在本实施方式中,采用全链路压测来进行压力测试,所述全链路压测直接在生产上进行压测,通过直接在生产上进行压测能够最高程度的还原真实生产环境。在本实施方式中,所述压测请求数据采用生产的真实数据。例如,直接录制3-5天的生产访问请求流量,再对录制的请求进行数据清洗。例如,将某个用户的请求替换成一个压测虚拟用户的请求,请求的商品也替换成压测虚拟商品等。所述生产的真实数据可以通过流量回放、日志回放的方式采集。在一实施方式中,所述压测请求数据还可以是人工构造数据。另外,为了在压测过程中不影响到生产环境,所述弹性调度资源的方法在发起请求的时候通过请求报文头中的压测标示来区分压测请求数据和实际生产数据,从而将压测的流量都分流到指定的应用服务器和指定的存储器中进行数据保存和处理。在本实施方式中,所述主服务器负责将客户端发送的访问请求进行分发至从属于所述主服务器的从属服务器,接着所述从属服务器根据所述压力测试文件执行压力测试,然后所述从属服务器将测试结果回传至所述主服务器。步骤s23、根据所述待测项目和测试实例信息,采集所述测试实例在测试过程中的性能数据。在本实施方式中,通过python脚本与linux命令结合的方式采集测试过程中测试实例(从属服务器)的性能数据。根据测试过程中从属服务器当前的tcp链接数量来决定数据采集是否结束。若当前tcp连接数量小于初始化连接数量(例如1000个连接),则继续采集;若当前tcp连接数量大于等于初始化连接数量,则结束采集过程。所述python脚本主要实现的操作包括性能数据初步采集。具体地,通过调用linux的sar和iostat命令,将数据写入原始文件中。采集完成后,执行性能指标提取脚本,从原始指标文件提取有效的数据写入最终的文件中,并进行打包操作。例如,将压力测试过程中服务器性能指标按照10s一次进行采集并写入文件中。在本实施方式中,所述性能数据包括tps/qps、错误率、忙线程、cpu、内存、磁盘io,负载能力、吞吐率、响应能力和可靠性。所述负载能力指应用程序所能容忍的最大用户数量,也就是在正常的响应时间中,应用程序能够支持的最多的客户端的数量。所述吞吐率指应用程序在单位时间内完成的交易量,也就是在单位时间内,应用程序针对不同的负载压力,所能完成的交易数量。所述应用程序的响应能力指在各种负载压力情况下,系统的响应时间,也就是从客户端请求发起,到服务器端应答返回所需要的时间,包括网络传输时间和服务器处理时间。所述应用程序的可靠性指在连续工作时间状态下,系统能够正常运行的时间,即在连续工作时间段内没有出错信息。所述应用程序可以是购物应用程序(如京东和淘宝)或金融应用程序(如平安口袋银行)。步骤s24、监控和分析所述性能数据,并根据所述性能数据判断是否需要弹性扩缩容调整。具体地,采用从节点向主节点汇报的“主动”模式来监控所述性能数据。在本实施方式中,将各从属服务器作为从节点,所述从属服务器对应的主服务器作为主节点,所述从节点周期性向所述主节点发送所述从属服务器的性能数据和空闲资源信息,如所述性能数据包括cpu占比和剩余内存等,所述空闲资源信息包括空闲的cpu个数和空闲的内存资源等。在本实施方式中,所述主节点为资源整合的分配节点,所述从节点为容器的宿主机。容器云平台将资源分配给框架,所述主节点根据框架响应的资源需求信息,对资源进行调度。所述资源需求信息根据所述性能数据获取。所述主节点对资源进行调度具体包括:从节点主动的向主节点上报资源空闲情况,主节点根据获取的从节点的空闲资源情况向框架发出资源邀约,资源邀约中的资源若满足框架上的作业需求时,则框架中的调度器(scheduler)单元向主节点响应资源需求,主节点根据中央处理器(cpu)和内存资源对从节点进行过滤,在满足资源需求的剩余从节点中,再根据轮询调度算法进行从节点的选取。在本实施方式中,根据所述性能数据判断是否需要弹性扩缩容调整包括:获取根据实际生产中业务运行状况和经验值得到的所述性能数据的上限阈值和下限阈值;当测试过程中的性能数据大于所述上限阈值,进行弹性扩容调整,例如,增加由主服务器和至少一个从属服务器组成的一组服务器资源;当测试过程中的性能数据小于所述下限阈值,则进行弹性缩容调整。当测试过程中的性能数据在临界范围内,则程序或业务正常运行。可以理解的是,根据所述性能数据判断是否需要弹性扩缩容调整的步骤还包括:根据所述性能数据和获取的从节点的空闲资源筛选从节点。具体地,当测试过程中的性能数据大于所述上限阈值,保留空闲的中央处理器cpu的个数大于或等于实际生产中业务执行所需的中央处理器cpu的个数且所述空闲的内存资源大于或等于实际生产中业务执行所需的内存资源的从节点;当测试过程中的性能数据小于所述下限阈值,删除所述空闲的中央处理器cpu的个数小于实际生产中业务执行所需的中央处理器cpu的个数和/或所述空闲的内存资源小于实际生产中业务执行所需的内存资源的从节点。可以理解的是,当测试过程中的性能数据小于等于所述上限阈值且大于等于所述下限阈值时,不作处理,保持现有从节点个数进行业务处理。在一实施方式中,所述上限阈值和下限阈值还可以由用户指定。综上所述,本发明提供的弹性调度资源的方法,包括生成压力测试文件,其中,所述压力测试文件包括待测项目和测试实例信息;根据所述压力测试文件执行压力测试;根据所述待测项目和测试实例信息,采集所述测试实例在测试过程中的性能数据;及监控和分析所述性能数据,并根据所述性能数据判断是否需要弹性扩缩容调整。实现自动进行扩缩容,具有很强的实用性和扩展性。针对突发业务高峰和突发流量能够很好的进行应对,保障业务正常运行,也就是说,能够针对峰值流量和多并发等情况发生时,进行快速响应,及时扩缩资源,保障系统稳定运行。减少系统因高并发、高流量或突发流量而引起的业务中断。以上所述,仅是本发明的具体实施方式,但本发明的保护范围并不局限于此,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。下面结合第3至4图,分别对实现上述弹性调度资源的方法的服务器的功能模块及硬件结构进行介绍。实施例三图3为本发明弹性调度资源的装置较佳实施例中的功能模块图。在一些实施例中,所述弹性调度资源的装置30运行于服务器中。所述弹性调度资源的装置30可以包括多个由程序代码段所组成的功能模块。所述弹性调度资源的装置30中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行(详见图3及其相关描述)弹性调度资源功能。本实施例中,所述弹性调度资源的装置30根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:施压模块301、执行模块302、数据采集模块303及监控模块304。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在一些实施例中,关于各模块的功能将在后续的实施例中详述。施压模块301用于生成压力测试文件,并根据所述压力测试文件执行压力测试。在一实施方式中,所述压力测试文件可以通过用户操作一ui界面来生成。所述ui界面显示有待测项目和测试实例信息,用户通过选定待测项目及测试实例来生成一压力测试文件。所述待测项目包括待测接口信息等,所述测试实例信息包括从属服务器的ip信息。在另一实施方式中,还可以通过输入一命令行来调用所述压力测试文件。执行模块302用于根据所述压力测试文件执行压力测试。优选地,在根据所述压力测试文件执行压力测试之前,所述弹性调度资源的装置还包括配置生产环境和压测请求数据。具体地,所述弹性调度资源的装置30用于在生产环境下,根据压力测试文件和压测请求数据执行压力测试。在本实施方式中,采用全链路压测来进行压力测试,所述全链路压测直接在生产上进行压测,通过直接在生产上进行压测能够最高程度的还原真实生产环境。在本实施方式中,所述压测请求数据采用生产的真实数据。例如,直接录制3-5天的生产访问请求流量,再对录制的请求进行数据清洗。例如,将某个用户的请求替换成一个压测虚拟用户的请求,请求的商品也替换成压测虚拟商品等。所述生产的真实数据可以通过流量回放、日志回放的方式采集。在一实施方式中,所述压测请求数据还可以是人工构造数据。另外,为了在压测过程中不影响到生产环境,所述弹性调度资源的装置在发起请求的时候通过请求报文头中的压测标示来区分压测请求数据和实际生产数据,从而将压测的流量都分流到指定的应用服务器和指定的存储器中进行数据保存和处理。在本实施方式中,所述主服务器负责将客户端发送的访问请求进行分发至从属于所述主服务器的从属服务器,接着所述从属服务器根据所述压力测试文件执行压力测试,然后所述从属服务器将测试结果回传至所述主服务器。数据采集模块303用于根据所述待测项目和测试实例信息,采集所述测试实例在测试过程中的性能数据。在本实施方式中,通过python脚本与linux命令结合的方式采集测试过程中测试实例(从属服务器)的性能数据。根据测试过程中从属服务器当前的tcp链接数量来决定数据采集是否结束。若当前tcp连接数量小于初始化连接数量(例如1000个连接),则继续采集;若当前tcp连接数量大于等于初始化连接数量,则结束采集过程。所述python脚本主要实现的操作包括性能数据初步采集。具体地,通过调用linux的sar和iostat命令,将数据写入原始文件中。采集完成后,执行性能指标提取脚本,从原始指标文件提取有效的数据写入最终的文件中,并进行打包操作。例如,将压力测试过程中服务器性能指标按照10s一次进行采集并写入文件中。在本实施方式中,所述性能数据包括tps/qps、错误率、忙线程、cpu、内存、磁盘io,负载能力、吞吐率、响应能力和可靠性。所述负载能力指应用程序所能容忍的最大用户数量,也就是在正常的响应时间中,应用程序能够支持的最多的客户端的数量。所述吞吐率指应用程序在单位时间内完成的交易量,也就是在单位时间内,应用程序针对不同的负载压力,所能完成的交易数量。所述应用程序的响应能力指在各种负载压力情况下,系统的响应时间,也就是从客户端请求发起,到服务器端应答返回所需要的时间,包括网络传输时间和服务器处理时间。所述应用程序的可靠性指在连续工作时间状态下,系统能够正常运行的时间,即在连续工作时间段内没有出错信息。所述应用程序可以是购物应用程序(如京东和淘宝)或金融应用程序(如平安口袋银行)。监控模块304用于监控和分析所述性能数据,并根据所述性能数据判断是否需要弹性扩缩容调整。具体地,采用从节点向主节点汇报的“主动”模式来监控所述性能数据。在本实施方式中,将各从属服务器作为从节点,所述从属服务器对应的主服务器作为主节点,所述从节点周期性向所述主节点发送所述从属服务器的性能数据和空闲资源信息,如所述性能数据包括cpu占比和剩余内存等,所述空闲资源信息包括空闲的cpu个数和空闲的内存资源等。在本实施方式中,所述主节点为资源整合的分配节点,所述从节点为容器的宿主机。容器云平台将资源分配给框架,所述主节点根据框架响应的资源需求信息,对资源进行调度。所述资源需求信息根据所述性能数据获取。所述主节点对资源进行调度具体包括:从节点主动的向主节点上报资源空闲情况,主节点根据获取的从节点的空闲资源情况向框架发出资源邀约,资源邀约中的资源若满足框架上的作业需求时,则框架中的调度器(scheduler)单元向主节点响应资源需求,主节点根据中央处理器(cpu)和内存资源对从节点进行过滤,在满足资源需求的剩余从节点中,再根据轮询调度算法进行从节点的选取。在本实施方式中,根据所述性能数据判断是否需要弹性扩缩容调整包括:获取根据实际生产中业务运行状况和经验值得到的所述性能数据的上限阈值和下限阈值;当测试过程中的性能数据大于所述上限阈值,进行弹性扩容调整,例如,增加由主服务器和至少一个从属服务器组成的一组服务器资源;当测试过程中的性能数据小于所述下限阈值,则进行弹性缩容调整。当测试过程中的性能数据在临界范围内,则程序或业务正常运行。可以理解的是,根据所述性能数据判断是否需要弹性扩缩容调整的步骤还包括:根据所述性能数据和获取的从节点的空闲资源筛选从节点。具体地,当测试过程中的性能数据大于所述上限阈值,保留空闲的中央处理器cpu的个数大于或等于实际生产中业务执行所需的中央处理器cpu的个数且所述空闲的内存资源大于或等于实际生产中业务执行所需的内存资源的从节点;当测试过程中的性能数据小于所述下限阈值,删除所述空闲的中央处理器cpu的个数小于实际生产中业务执行所需的中央处理器cpu的个数和/或所述空闲的内存资源小于实际生产中业务执行所需的内存资源的从节点。可以理解的是,当测试过程中的性能数据小于等于所述上限阈值且大于等于所述下限阈值时,不作处理,保持现有从节点个数进行业务处理。在一实施方式中,所述上限阈值和下限阈值还可以由用户指定。综上所述,本发明提供的弹性调度资源的装置,包括施压模块301、执行模块302、数据采集模块303和监控模块304。所述施压模块301用于生成压力测试文件,其中,所述压力测试文件包括待测项目和测试实例信息;所述执行模块302用于根据所述压力测试文件执行压力测试;所述数据采集模块303用于根据所述待测项目和测试实例信息,采集所述测试实例在测试过程中的性能数据;及所述监控模块304用于监控和分析所述性能数据,并根据所述性能数据判断是否需要弹性扩缩容调整。实现自动进行扩缩容,具有很强的实用性和扩展性。针对突发业务高峰和突发流量能够很好的进行应对,保障业务正常运行,也就是说,能够针对峰值流量和多并发等情况发生时,进行快速响应,及时扩缩资源,保障系统稳定运行。减少系统因高并发、高流量或突发流量而引起的业务中断。上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,双屏设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。实施例四图4为本发明实施例四提供的服务器的示意图。所述服务器4包括:数据库41、存储器42、至少一个处理器43、存储在所述存储器42中并可在所述至少一个处理器43上运行的计算机程序44及至少一条通讯总线45。所述至少一个处理器43执行所述计算机程序44时实现上述弹性调度资源的方法实施例中的步骤。示例性的,所述计算机程序44可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器42中,并由所述至少一个处理器43执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,所述指令段用于描述所述计算机程序44在所述服务器4中的执行过程。所述服务器4是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(应用程序licationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。本领域技术人员可以理解,所述示意图4仅仅是服务器4的示例,并不构成对服务器4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器4还可以包括输入输出设备、网络接入设备、总线等。所述数据库(database)41是按照数据结构来组织、存储和管理数据的建立在所述服务器4上的仓库。数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。在本实施方式中,所述数据库41用于存储所述性能数据。所述至少一个处理器43可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述处理器43可以是微处理器或者所述处理器43也可以是任何常规的处理器等,所述处理器43是所述服务器4的控制中心,利用各种接口和线路连接整个服务器4的各个部分。所述存储器42可用于存储所述计算机程序44和/或模块/单元,所述处理器43通过运行或执行存储在所述存储器42内的计算机程序和/或模块/单元,以及调用存储在存储器42内的数据,实现所述服务器4的各种功能。所述存储器42可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器4的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。所述存储器42中存储有程序代码,且所述至少一个处理器43可调用所述存储器42中存储的程序代码以执行相关的功能。例如,图3中所述的各个模块(施压模块301、执行模块302、数据采集模块303及监控模块304)是存储在所述存储器42中的程序代码,并由所述至少一个处理器43所执行,从而实现所述各个模块的功能以达到资源调度的目的。所述施压模块301用于生成压力测试文件,其中,所述压力测试文件包括待测项目和测试实例信息;所述执行模块302用于根据所述压力测试文件执行压力测试;所述数据采集模块303用于根据所述待测项目和测试实例信息,采集所述测试实例在测试过程中的性能数据;所述监控模块304用于监控和分析所述性能数据,并根据所述性能数据判断是否需要弹性扩缩容调整。优选地,在根据所述压力测试文件执行压力测试之前,所述弹性调度资源的装置还可以配置生产环境和压测请求数据。优选地,所述根据所述性能数据判断是否需要弹性扩缩容调整的方法包括:获取根据实际生产中业务运行状况和经验值得到的所述性能数据的上限阈值和下限阈值;当测试过程中的性能数据大于上限阈值时,进行弹性扩容调整;当测试过程中的性能数据小于下限阈值时,进行弹性缩容调整;当测试过程中的性能数据大于等于所述下限阈值且小于等于所述上限阈值时,保持业务正常运行。优选地,所述当测试过程中的性能数据大于所述上限阈值时,进行弹性扩容调整的步骤包括:增加由主服务器和至少一个从属服务器组成的一组服务器资源。优选地,所述监控和分析所述性能数据的步骤包括:将所述从属服务器作为从节点,所述从属服务器对应的主服务器作为主节点;所述从节点周期性向所述主节点发送所述从属服务器的性能数据和空闲资源信息。优选地,根据所述性能数据判断是否需要弹性扩缩容调整的步骤还包括:根据所述性能数据和获取的从节点的空闲资源筛选从节点。优选地,当测试过程中的性能数据大于所述上限阈值,保留空闲的中央处理器cpu的个数大于或等于实际生产中业务执行所需的中央处理器cpu的个数且所述空闲的内存资源大于或等于实际生产中业务执行所需的内存资源的从节点;当测试过程中的性能数据小于所述下限阈值,删除所述空闲的中央处理器cpu的个数小于实际生产中业务执行所需的中央处理器cpu的个数和/或所述空闲的内存资源小于实际生产中业务执行所需的内存资源的从节点。所述服务器4集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,所述计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。尽管未示出,所述服务器4还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理系统与所述至少一个处理器43逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述服务器4还可以包括蓝牙模块、wi-fi模块等,在此不再赘述。应所述了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。在本发明所提供的几个实施例中,应所述理解到,所揭露的电子设备和方法,可以通过其它的方式实现。例如,以上所描述的电子设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本发明各个实施例中的各功能单元可以集成在相同处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在相同单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1