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
timer
application
memory
cpu
java
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
CN106445512A (zh) 一种实现运行环境动态伸缩的方法
Bonabeau The perils of the imitation age.
US20070016893A1 (en) Tracking resource usage by applications
US9123010B2 (en) Ledger-based resource tracking
CN104541242A (zh) 代码执行的灵活加速
WO2007130367A3 (en) System and method for allocating and deallocating memory within transactional code
US20200202126A1 (en) Recognizing carbon-saving behaviors from images
CN102831068A (zh) 一种内存操作记录的处理方法及装置
CN109033359A (zh) 一种多进程安全访问sqlite的方法
CN109196476A (zh) 共享垃圾收集器的不同类型图之间的无缝高性能互操作性
CN111383106B (zh) 授信处理方法、装置、设备及系统
CN107193598A (zh) 一种应用启动方法、移动终端及计算机可读存储介质
CN101789944B (zh) 多功能电能表通信协议栈的开发系统
CN103440279A (zh) 一种数据采集过程中的数据适配器及其数据适配方法
EP3146426A1 (en) High-performance computing framework for cloud computing environments
CN109614270A (zh) 基于Hbase的数据读写方法、装置、设备及存储介质
CN108491736A (zh) 篡改监测方法及装置
Stijn et al. Organizational memory and the completeness of process modeling in ERP systems: Some concerns, methods and directions for future research
KR102443171B1 (ko) 이기종 컴퓨팅 환경에서 데이터 타입 변환을 지원하기 위한 시스템 및 방법
WO2020223742A3 (en) Generation and operation of artificial intelligence based conversation systems
US7386647B2 (en) System and method for processing an interrupt in a processor supporting multithread execution
US20120233623A1 (en) Using a yield indicator in a hierarchical scheduler
EP2756396B1 (en) Simulation of static members and parameterized constructors on an interface-based api
CN109981580A (zh) 一种防止cmsp被动态跟踪的安全方法和系统
CN102779076A (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