CN106445512A - 一种实现运行环境动态伸缩的方法 - Google Patents
一种实现运行环境动态伸缩的方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000008602 contraction Effects 0.000 title abstract 2
- 238000002372 labelling Methods 0.000 claims abstract description 4
- 238000011038 discontinuous diafiltration by volume reduction Methods 0.000 claims description 6
- 230000003247 decreasing effect Effects 0.000 claims description 3
- 239000000047 product Substances 0.000 abstract description 6
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000012544 monitoring process Methods 0.000 abstract description 2
- 239000013589 supplement Substances 0.000 abstract description 2
- 101150096185 PAAS gene Proteins 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
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写入内存时,停止运行的应用及时释放内存,防止内存占用不断增大。
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)
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)
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 | 普元信息技术股份有限公司 | 云计算平台中实现服务器自动纵向伸缩的系统及方法 |
-
2016
- 2016-09-12 CN CN201610816688.XA patent/CN106445512B/zh active Active
Patent Citations (3)
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)
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) | 一种实现运行环境动态伸缩的方法 | |
TWI694342B (zh) | 一種資料快取方法、裝置及系統 | |
US9411650B2 (en) | Ledger-based resource tracking | |
US8549354B2 (en) | Managing rollback in a transactional memory environment | |
US8312196B2 (en) | Dual processor system and method for using the same | |
CN105808219B (zh) | 一种内存空间分配方法及装置 | |
KR102338849B1 (ko) | 실시간 운영 체제에서 스택 메모리 관리를 제공하는 방법 및 시스템 | |
US20070005530A1 (en) | Selecting grid executors via a neural network | |
EP2339466A3 (en) | Data control device, data control method, and program | |
CN109196476A (zh) | 共享垃圾收集器的不同类型图之间的无缝高性能互操作性 | |
KR20160130491A (ko) | 애플리케이션간 호출 중의 애플리케이션 디하이드레이션 및 리하이드레이션 | |
CN103440279A (zh) | 一种数据采集过程中的数据适配器及其数据适配方法 | |
CN104239054A (zh) | 一种基于安卓系统的插件加载方法及其系统 | |
US20170083387A1 (en) | High-performance computing framework for cloud computing environments | |
CN106202307A (zh) | 一种批量日志保存方法及装置 | |
US20120324194A1 (en) | Adjusting the amount of memory allocated to a call stack | |
CN110782253B (zh) | 基于区块链的交易处理方法、装置及设备 | |
Stijn et al. | Organizational memory and the completeness of process modeling in ERP systems: Some concerns, methods and directions for future research | |
CN101799832A (zh) | 巨量数据一次性快速写入数据库的方法 | |
CN109213745A (zh) | 一种分布式文件存储方法、装置、处理器及存储介质 | |
US10474512B1 (en) | Inter-process intra-application communications | |
WO2020223742A3 (en) | Generation and operation of artificial intelligence based conversation systems | |
CN116795492A (zh) | 云平台的资源调度方法、装置、设备及可读存储介质 | |
US20120233623A1 (en) | Using a yield indicator in a hierarchical scheduler | |
EP2756396B1 (en) | Simulation of static members and parameterized constructors on an interface-based api |
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 |