CN106445512A - 一种实现运行环境动态伸缩的方法 - Google Patents

一种实现运行环境动态伸缩的方法 Download PDF

Info

Publication number
CN106445512A
CN106445512A CN201610816688.XA CN201610816688A CN106445512A CN 106445512 A CN106445512 A CN 106445512A CN 201610816688 A CN201610816688 A CN 201610816688A CN 106445512 A CN106445512 A CN 106445512A
Authority
CN
China
Prior art keywords
memory
timer
application
instances
contraction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610816688.XA
Other languages
English (en)
Other versions
CN106445512B (zh
Inventor
周庆勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Software Co Ltd
Original Assignee
Inspur Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Software Co Ltd filed Critical Inspur Software Co Ltd
Priority to CN201610816688.XA priority Critical patent/CN106445512B/zh
Publication of CN106445512A publication Critical patent/CN106445512A/zh
Application granted granted Critical
Publication of CN106445512B publication Critical patent/CN106445512B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/22Procedural

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种实现运行环境动态伸缩的方法,所述方法通过java定时器调用cloud foundry的API获取所有应用运行环境的CPU使用信息,并根据CPU的使用率与阀值比较,采用标签化形式存入堆内存或内存数据库;利用java定时器获取堆内存或内存数据库的信息,根据规则来监测应用环境是否达到伸缩标准,并以之增加或减少实例个数,从而实现扩容/减容,总体实例数控制在最小‑最大个数之间。本发明实现了应用运行环境实例的弹性扩缩容,能够对于使用开源Paas产品cloud foundry的客户,快速高效提供了一种实例弹性解决方案,提高了资源利用率,也可做为开源产品的一个有益补充。

Description

一种实现运行环境动态伸缩的方法
技术领域
本发明涉及PAAS运维监控技术领域,具体涉及一种实现运行环境动态伸缩的方法,针对使用Paas平台cloud foundry进行应用运行环境使用及应用部署,实现运行环境的高可用,提高资源利用率。
背景技术
Cloud Foundry是VMware推出的业界第一个开源PaaS云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题.
由于它是开源的云计算Paas平台,灵活性高,横向扩展能力强,对外API比较丰富,因此在企业内作为应用运行环境支撑普遍受到欢迎,但是由于它是在运行实例弹性上面没有明确完善的解决思路,反而在Pivotal公司在自己商业化产品PCF中提供了弹性的策略,但由于商业化产品价格比较高,对于中小型企业无法承受,因此急需要一种性价比比较高的解决方案,来实现应用运行环境实例的弹性扩缩容,来保证应用的高可用,服务器资源的高利用。
发明内容
本发明要解决的技术问题是:本发明针对以上问题,提供一种实现运行环境动态伸缩的方法,来实现应用运行环境实例的弹性扩缩容,提高了资源利用率,对用户透明并保证运行环境的正常使用。
本发明所采用的技术方案为:
一种实现运行环境动态伸缩的方法,所述方法通过java定时器调用cloud foundry的API获取所有应用运行环境的CPU使用信息,并根据CPU的使用率与阀值比较,采用标签化形式存入堆内存或内存数据库;利用java定时器获取堆内存或内存数据库的信息,根据规则来监测应用环境是否达到伸缩标准,并以之增加或减少实例个数,从而实现扩容/减容,总体实例数控制在最小-最大个数之间。
所述方法实现过程如下:
采用java堆内存,采用支持高并发、高吞吐量、线程安全的ConcurrentHashMap类型作为全局Map<应用Context名,12位状态码>写入内存, 12位状态码初始为“000000000000”即12位全0;设置定时器A和定时器B:
定时器A,使用Maxflag和Minflag分别作为在内存中写入H(超额)和L(低额)的触发标识,
每10秒钟,Maxflag检测是否某应用下所有实例CPU使用率都达到80%以上,满足条件进行数据打标签,用“H”写入状态码最后一位进行占位;
Minflag检测是否某应用下所有实例CPU使用率都达到20%以上且实例数超过2个,满足条件进行数据打标签,用“L”写入状态码最后一位进行占位;不超额也不低额则用“0”进行占位;
定时器B,不间断循环读取内存ConcurrentHashMap中的成员,如果读到Map中某个key的value状态码为12位全“H”,则说明一分钟该应用都处于超额状态,这时定时器B则调用cloud foundry接口增加一个实例,实现扩容;同理如果读到Map中某个key的value状态码为12位全“L”,则说明一分钟该应用都处于低额状态,这时定时器B则调用cloud foundry接口减少一个实例,实现减容。
所述方法ConcurrentHashMap类型作为全局Map写入内存时,停止运行的应用及时释放内存,防止内存占用不断增大。
本发明的有益效果为:
本发明实现了应用运行环境实例的弹性扩缩容,能够对于使用开源Paas产品cloudfoundry的客户,快速高效提供了一种实例弹性解决方案,提高了资源利用率,也可做为开源产品的一个有益补充。
附图说明
图1为本发明方法示意图。
具体实施方式
下面结合附图,根据具体实施方式对本发明进一步说明:
实施例1:
一种实现运行环境动态伸缩的方法,所述方法通过java定时器调用cloud foundry的API获取所有应用运行环境的CPU使用信息,并根据CPU的使用率与阀值比较,采用标签化形式存入堆内存或内存数据库;利用java定时器获取堆内存或内存数据库的信息,根据规则来监测应用环境是否达到伸缩标准,并以之增加或减少实例个数,从而实现扩容/减容,总体实例数控制在最小-最大个数之间。
实施例2
如图1所示,在实施例1的基础上,本实施例所述方法实现过程如下:
采用java堆内存,采用支持高并发、高吞吐量、线程安全的ConcurrentHashMap类型作为全局Map<应用Context名,12位状态码>写入内存, 12位状态码初始为“000000000000”即12位全0;设置定时器A和定时器B:
定时器A,使用Maxflag和Minflag分别作为在内存中写入H(超额)和L(低额)的触发标识,
每10秒钟,Maxflag检测是否某应用下所有实例CPU使用率都达到80%以上,满足条件进行数据打标签,用“H”写入状态码最后一位进行占位;
Minflag检测是否某应用下所有实例CPU使用率都达到20%以上且实例数超过2个,满足条件进行数据打标签,用“L”写入状态码最后一位进行占位;不超额也不低额则用“0”进行占位;
定时器B,不间断循环读取内存ConcurrentHashMap中的成员,如果读到Map中某个key的value状态码为12位全“H”,则说明一分钟该应用都处于超额状态,这时定时器B则调用cloud foundry接口增加一个实例,实现扩容;同理如果读到Map中某个key的value状态码为12位全“L”,则说明一分钟该应用都处于低额状态,这时定时器B则调用cloud foundry接口减少一个实例,实现减容。
实施例3
在实施例2的基础上,本实施例所述方法ConcurrentHashMap类型作为全局Map写入内存时,停止运行的应用及时释放内存,防止内存占用不断增大。
实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (3)

1.一种实现运行环境动态伸缩的方法,其特征在于:所述方法通过java定时器调用cloud foundry的API获取所有应用运行环境的CPU使用信息,并根据CPU的使用率与阀值比较,采用标签化形式存入堆内存或内存数据库;利用java定时器获取堆内存或内存数据库的信息,根据规则来监测应用环境是否达到伸缩标准,并以之增加或减少实例个数,从而实现扩容/减容,总体实例数控制在最小-最大个数之间。
2.根据权利要求1所述的一种实现运行环境动态伸缩的方法,其特征在于,所述方法实现过程如下:
采用java堆内存,采用ConcurrentHashMap类型作为全局Map<应用Context名,12位状态码>写入内存,12位状态码初始为“000000000000”;设置定时器A和定时器B:
定时器A,使用Maxflag和Minflag分别作为在内存中写入超额H和低额L的触发标识,
每10秒钟,Maxflag检测是否某应用下所有实例CPU使用率都达到80%以上,满足条件进行数据打标签,用“H”写入状态码最后一位进行占位;
Minflag检测是否某应用下所有实例CPU使用率都达到20%以上且实例数超过2个,满足条件进行数据打标签,用“L”写入状态码最后一位进行占位;不超额也不低额则用“0”进行占位;
定时器B,不间断循环读取内存ConcurrentHashMap中的成员,如果读到Map中某个key的value状态码为12位全“H”,则说明一分钟该应用都处于超额状态,这时定时器B则调用cloud foundry接口增加一个实例,实现扩容;如果读到Map中某个key的value状态码为12位全“L”,则说明一分钟该应用都处于低额状态,这时定时器B则调用cloud foundry接口减少一个实例,实现减容。
3.根据权利要求2所述的一种实现运行环境动态伸缩的方法,其特征在于,所述方法ConcurrentHashMap类型作为全局Map写入内存时,停止运行的应用及时释放内存,防止内存占用不断增大。
CN201610816688.XA 2016-09-12 2016-09-12 一种实现运行环境动态伸缩的方法 Active CN106445512B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610816688.XA CN106445512B (zh) 2016-09-12 2016-09-12 一种实现运行环境动态伸缩的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610816688.XA CN106445512B (zh) 2016-09-12 2016-09-12 一种实现运行环境动态伸缩的方法

Publications (2)

Publication Number Publication Date
CN106445512A true CN106445512A (zh) 2017-02-22
CN106445512B CN106445512B (zh) 2019-07-02

Family

ID=58169290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610816688.XA Active CN106445512B (zh) 2016-09-12 2016-09-12 一种实现运行环境动态伸缩的方法

Country Status (1)

Country Link
CN (1) CN106445512B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107171877A (zh) * 2017-07-26 2017-09-15 郑州云海信息技术有限公司 一种创建cf服务实例的方法及装置
CN108958824A (zh) * 2017-05-18 2018-12-07 龙芯中科技术有限公司 应用程序的启动方法、装置、电子设备及存储介质
CN109783577A (zh) * 2019-01-05 2019-05-21 咪付(广西)网络技术有限公司 一种基于策略的云端数据库弹性伸缩方法
CN112087326A (zh) * 2020-08-24 2020-12-15 烽火通信科技股份有限公司 一种多实例动态部署收发方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050198285A1 (en) * 2004-01-27 2005-09-08 Sun Microsystems, Inc. Overload management in an application-based server
CN103916396A (zh) * 2014-04-10 2014-07-09 电子科技大学 一种基于负载自适应的云平台应用实例自动伸缩方法
CN104954478A (zh) * 2015-06-23 2015-09-30 普元信息技术股份有限公司 云计算平台中实现服务器自动纵向伸缩的系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050198285A1 (en) * 2004-01-27 2005-09-08 Sun Microsystems, Inc. Overload management in an application-based server
CN103916396A (zh) * 2014-04-10 2014-07-09 电子科技大学 一种基于负载自适应的云平台应用实例自动伸缩方法
CN104954478A (zh) * 2015-06-23 2015-09-30 普元信息技术股份有限公司 云计算平台中实现服务器自动纵向伸缩的系统及方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108958824A (zh) * 2017-05-18 2018-12-07 龙芯中科技术有限公司 应用程序的启动方法、装置、电子设备及存储介质
CN107171877A (zh) * 2017-07-26 2017-09-15 郑州云海信息技术有限公司 一种创建cf服务实例的方法及装置
CN109783577A (zh) * 2019-01-05 2019-05-21 咪付(广西)网络技术有限公司 一种基于策略的云端数据库弹性伸缩方法
CN109783577B (zh) * 2019-01-05 2021-10-08 咪付(广西)网络技术有限公司 一种基于策略的云端数据库弹性伸缩方法
CN112087326A (zh) * 2020-08-24 2020-12-15 烽火通信科技股份有限公司 一种多实例动态部署收发方法及系统

Also Published As

Publication number Publication date
CN106445512B (zh) 2019-07-02

Similar Documents

Publication Publication Date Title
CN105119952B (zh) 云平台下自动弹性地分配资源的方法和系统
CN106445512A (zh) 一种实现运行环境动态伸缩的方法
US10417062B2 (en) Method and apparatus of unloading out of memory processing flow to user space
CN113867916B (zh) 任务处理方法、装置及电子设备
TW201832072A (zh) 資源回收方法及裝置
US10261918B2 (en) Process running method and apparatus
US10248456B2 (en) Method and system for providing stack memory management in real-time operating systems
CN105074666A (zh) 执行在具有不同指令集架构的处理器上的操作系统
US20210200668A1 (en) Reserved memory in memory management system
US20180067674A1 (en) Memory management in virtualized computing
CN104424015B (zh) 一种虚拟机管理方法和装置
CN104541242A (zh) 代码执行的灵活加速
US11126575B1 (en) Interrupt recovery management
CN102779072A (zh) 一种嵌入式系统及其应用进程的休眠与唤醒方法
CN111124643A (zh) 一种分布式存储中的删除任务调度方法、系统及相关装置
CN104346211A (zh) 一种云计算下实现虚拟机迁移的方法及系统
CN102567096A (zh) 一种在多任务环境下防止死锁的互斥信号量管理方法
CN104239054A (zh) 一种基于安卓系统的插件加载方法及其系统
CN113553216B (zh) 数据恢复方法、装置、电子设备及存储介质
CN110704334B (zh) 一种重要产品数据管理的方法、系统及设备
CN114936173B (zh) 一种eMMC器件的读写方法、装置、设备和存储介质
CN106776018B (zh) 用于分布式系统的主节点和从节点的并行处理方法和设备
CN102427468B (zh) 一种云计算操作系统及其调度方法
CN105677606A (zh) 总线设备的热插拔方法及总线装置
CN111209079A (zh) 一种基于鲲鹏处理器的调度方法、装置及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant