<listing id="vjp15"></listing><menuitem id="vjp15"></menuitem><var id="vjp15"></var><cite id="vjp15"></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><menuitem id="vjp15"></menuitem></video></cite>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<menuitem id="vjp15"><strike id="vjp15"></strike></menuitem>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"></strike></var>
<var id="vjp15"></var>
<var id="vjp15"></var>
<var id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></var>
<menuitem id="vjp15"></menuitem><cite id="vjp15"><video id="vjp15"></video></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></cite>
<var id="vjp15"></var>
<var id="vjp15"></var>
<menuitem id="vjp15"><span id="vjp15"><thead id="vjp15"></thead></span></menuitem>
<cite id="vjp15"><video id="vjp15"></video></cite>
<menuitem id="vjp15"></menuitem>

一種基于負載自適應的云平臺應用實例自動伸縮方法

文檔序號:7800999閱讀:391來源:國知局
一種基于負載自適應的云平臺應用實例自動伸縮方法
【專利摘要】本發明涉及云計算領域,具體的說是一種基于負載自適應的云平臺應用實例自動伸縮方法。本發明的方法主要步驟為:通過實例負載監測組件從各個運行中的應用實例采集實時負載數據;通過應用負載分析組件對接收到的實例負載數據進行匯總計算確定該應用的運行負載,并結合該應用的用戶訪問請求量進行綜合決策分析,確定是否對該應用進行實例伸縮控制;然后通過實例控制組件調用云平臺API進行該應用的實例增減操作。本發明的有益效果為,首先解決了原生Cloud?Foundry開源云平臺使用人工方式伸縮應用實例問題,同時還解決了僅依據應用的用戶訪問請求量進行應用實例伸縮所帶來的可能與實際情況不吻合問題。本發明尤其適用于Cloud?Foundry開源云平臺。
【專利說明】一種基于負載自適應的云平臺應用實例自動伸縮方法
【技術領域】
[0001]本發明涉及云計算領域,具體的說是一種基于負載自適應的云平臺應用實例自動伸縮方法。
【背景技術】
[0002]云計算是一種服務的交付和使用模式,它將計算任務分布在大量計算機構成的資源池上,使各種應用系統能夠根據需要獲取計算力、存儲空間和信息服務。云計算基本特征為按需使用資源、資源可以動態擴展、應用彈性計算、通過網絡以服務方式提供給用戶。
[0003]彈性計算是云計算的基本特征之一,它是指用戶應用根據實際業務或者計算需要,靈活地使用計算資源,真正實現按需使用、按需交付和按需付費。彈性計算主要通過云計算平臺運行資源的垂直伸縮和水平伸縮來實現。資源垂直伸縮是在云計算平臺中單個運行節點中增減資源,如給運行計算機增減CPU或內存;資源水平伸縮是指在云計算平臺中,增加或減少運行節點數量,例如將應用的運行服務器由一臺增加為三臺。
[0004]Cloud Foundry是VMware于2011年初推出的業界第一個開源PaaS云計算平臺,它支持應用運行所需的多種框架、數據庫服務、運行時環境,使開發人員能夠在短時間內在云計算環境進行應用程序的部署和擴展,無需管理應用所依賴的基礎架構運行環境。CloudFoundry作為一種云計算平臺軟件,提供了基本的彈性計算功能。它具體通過控制云平臺上各應用運行的實例數量來支持不同負載的彈性計算能力。當外界對應用的訪問請求增多時,用戶可通過調用云平臺提供的實例增加命令,復制更多的應用實例,來增強應用的運行能力,滿足云平臺中應用的彈性計算。反之,當外界對應用的訪問請求減少時,為避免資源浪費,則減少應用的運行實例個數,這樣可以將節省下的資源用于其他應用的計算需求,從而實現平臺計算資源的高效利用。
[0005]但原生的Cloud Foundry開源云平臺對于應用彈性計算的支持有限,僅僅提供用戶根據監測到的應用負載情況,手動更改應用實例數進行計算資源的水平伸縮能力處理。該平臺提供的應用計算資源伸縮方式不能及時適應負載動態變化,其時效性不強,可能會造成應用一定時間內響應失效的情況;還可能因為用戶手動設置數值不合理,造成平臺資源浪費或不能滿足應用需求;同時該方式對平臺管理人員要求高,需要人工時刻關注各個應用負載狀態,及時進行應用運行資源調整操作,這會耗費較多的人員精力,也增大管理難度。
[0006]為了改進Cloud Foundry開源云平臺的應用彈性計算局限,一些云服務提供商在原生Cloud Foundry平臺基礎上實現了一定程度上的應用實例自動伸縮控制。其實現方法是在平臺資源調度層中增加了應用實例自動伸縮模塊,同時在平臺中為各個應用定義一個實例伸縮規則,如根據應用的HTTP訪問量評估應用負載狀態,然后基于應用負載進行實例數伸縮處理。例如,若監測應用每秒收到的HTTP訪問請求數大于100時,則在當前運行應用中增加一個實例;當HTTP訪問量大于150時,又增加一個實例,以次類推,應用最多可以有10個實例。若監測應用每秒收到的HTTP訪問請求數少于50時,則減少I個實例,應用最少為2個實例。現有改進技術方案是通過上述簡單的應用負載判斷方式來決定CloudFoundry開源云平臺的應用實例自動伸縮控制,從而實現云平臺的基本彈性計算。
[0007]雖然現有的Cloud Foundry云平臺應用實例伸縮技術方案提供了基本的應用實例自動伸縮控制策略方法,實現一定的應用彈性計算能力。但它們在技術實現上,只是簡單地根據應用的用戶訪問請求量,判斷其訪問量負載范圍,當負載超過閾值范圍之外時,就自動增減一個實例。此種策略方法雖然簡單,也實現了一定的平臺應用彈性計算,但其對于應用實例伸縮控制是被動的、滯后的。需要強調,應用的用戶訪問請求量并不一定能完全反映出應用實際負載狀況。因此,僅僅將應用的用戶訪問請求量作為應用實例伸縮依據是不充分的,在特定情況下,該方法并不能有效實現負載均衡和提高資源利用率。此外,當應用的訪問量變化頻繁時,簡單的依據當前訪問請求量決定增減應用的實例數,容易造成“應用訪問抖動”開銷。所謂應用訪問抖動是指應用在短時間內頻繁增減實例,如云平臺剛剛根據應用的訪問請求量,減少了一個應用實例,但下一時刻應用的訪問請求量又突發增加,導致平臺又立刻增加應用實例,帶來平臺系統較大開銷。這種狀況我們定義為“先減后增抖動”,還有一種就是“先增后減抖動”。由于在云平臺中增減應用實例是一種耗時耗資源的操作,頻繁地增減應用實例既會造成云平臺系統的額外開銷,也會導致應用響應處理能力降低。因此,目前的Cloud Foundry云平臺應用實例伸縮技術方案仍具有較大的局限性。

【發明內容】

[0008]本發明所要解決的問題,就是針對目前Cloud Foundry云平臺存在的應用實例伸縮技術局限,提供一種能夠負載自適應的云平臺應用實例自動伸縮方法,實現云平臺的應用彈性計算,并提高應用訪問穩定性。
[0009]本發明解決上述技術問題所采用的技術方案是:一種基于負載自適應的云平臺應用實例自動伸縮方法,其特征在于,包括以下步驟:
[0010]a.通過實例負載監測代理組件實時采集云平臺各應用實例的負載狀態,并將當前時刻采集到的實例負載數據值與前一時刻記錄的實例負載值進行對比得到該實例負載數據變化量,判斷變化量是否超出預設的變化量閥值,若是,則將負載數據發送到應用負載分析組件并進入步驟b,若否,則重復步驟a ;
[0011]b.應用負載分析組件接收實例負載監測組件發送的負載數據,將應用各實例負載數據匯總計算出該應用的運行負載,判斷應用運行負載是否處于預設的負載上、下閥值之間,若是,表明應用負載正常,則不進行處理并回到步驟a,若否,則進一步判斷應用運行負載數據是大于負載上閥值或是小于負載下閥值,若是大于負載上閥值,則標記該應用為重載狀態,若是小于負載下閥值,則標記該應用為輕載狀態;
[0012]c.判斷標記為重載狀態/輕載狀態的應用的變化趨勢,具體為:判斷標記為重載狀態的應用運行負載是否保持重載,若是,則進入步驟d,若否,則回到步驟a;判斷標記為輕載狀態的應用負載是否保持輕載,若是,則進入步驟e,若否,則回到步驟a ;
[0013]d.應用負載分析組件發送實例增加指令到應用實例伸縮控制組件,應用實例伸縮控制組件根據應用負載分析組件指令,調用云平臺應用實例伸縮API為當前應用增加實例,回到步驟a;
[0014]e.應用負載分析組件發送實例減少指令到應用實例伸縮控制組件,應用實例伸縮控制組件根據應用負載分析組件指令,調用云平臺應用實例伸縮API為當前應用減少實例,回到步驟a。
[0015]具體的,步驟a中通過應用實例負載監測代理組件實時采集云平臺每個應用實例的負載狀態的具體方法為:
[0016]在每個應用實例運行節點中設置實例負載監測代理模塊定時對該節點上所有負載數據進行采集,所述負載數據至少包括CPU負載、內存負載、磁盤負載和網絡負載。
[0017]具體的,步驟b還包括以下步驟:
[0018]bl.應用負載分析組件接收到應用的實例負載數據后,對該應用的運行負載進行計算,具體方法為:
[0019]假設應用的CPU負載為Lcpu、內存負載為Lmem、磁盤負載為Ldisk和網絡負載為Lnet,計算公式分別為:
[0020]CPU負載
【權利要求】
1.一種基于負載自適應的云平臺應用實例自動伸縮方法,其特征在于,包括以下步驟: a.通過實例負載監測代理組件實時采集云平臺各應用實例的負載狀態,并將當前時刻采集到的實例負載數據值與前一時刻記錄的實例負載值進行對比得到該實例負載數據變化量,判斷變化量是否超出預設的變化量閥值,若是,則將負載數據發送到應用負載分析組件并進入步驟b,若否,則重復步驟a ; b.應用負載分析組件接收實例負載監測組件發送的負載數據,將應用各實例負載數據匯總計算出該應用的運行負載,判斷應用運行負載是否處于預設的負載上、下閥值之間,若是,表明應用負載正常,則不進行處理并回到步驟a,若否,則進一步判斷應用運行負載數據是大于負載上閥值或是小于負載下閥值,若是大于負載上閥值,則標記該應用為重載狀態,若是小于負載下閥值,則標記該應用為輕載狀態; c.判斷標記為重載狀態/輕載狀態的應用的變化趨勢,具體為:判斷標記為重載狀態的應用運行負載是否保持重載,若是,則進入步驟d,若否,則回到步驟a ;判斷標記為輕載狀態的應用負載是否保持輕載,若是,則進入步驟e,若否,則回到步驟a ; d.應用負載分析組件發送實例增加指令到應用實例伸縮控制組件,應用實例伸縮控制組件根據應用負載分析組件指令,調用云平臺應用實例伸縮API為當前應用增加實例,回到步驟a ; e.應用負載分析組件發送實例減少指令到應用實例伸縮控制組件,應用實例伸縮控制組件根據應用負載 分析組件指令,調用云平臺應用實例伸縮API為當前應用減少實例,回到步驟a。
2.根據權利要求1所述的一種基于負載自適應的云平臺應用實例自動伸縮方法,其特征在于,步驟a中通過應用實例負載監測代理組件實時采集云平臺每個應用實例的負載狀態的具體方法為: 在每個應用實例運行節點中設置實例負載監測子模塊定時對該節點上所有負載數據進行采集,所述負載數據至少包括CPU負載、內存負載、磁盤負載和網絡負載。
3.根據權利要求2所述的一種基于負載自適應的云平臺應用實例自動伸縮方法,其特征在于,步驟b還包括以下步驟: bl.應用負載分析組件接收到應用的實例負載數據后,對該應用的運行負載進行計算,具體方法為: 假設應用的CPU負載為Lcpu、內存負載為Lmem、磁盤負載為Ldisk和網絡負載為Lnet,計算公式分別為: CPU負載
4.根據權利要求3所述的一種基于負載自適應的云平臺應用實例自動伸縮方法,其特征在于,步驟c還包括以下步驟: Cl.判斷標記為重載的應用負載的運行負載是否保持重載,具體方法為:從云平臺獲取單位時間內該應用的訪問請求量visit,判斷visit〈VH*N是否成立,若成立,貝U表示運行負載不會保持重載并回到步驟a,若不成立,則表面運行負載會保持重載并進入步驟c3,其中VH為使實例保持正常負載范圍內單位時間最大請求數,N為應用當前實例數目; c2.判斷標記為輕載的應用負載的運行負載是否保持輕載,具體方法為:從云平臺獲取單位時間內該應用實例的訪問請求書visit,判斷visit>=VL*N是否成立,若成立,貝!J表示運行負載不會保持輕載并回到步驟a,若不成立,則表示運行負載會保持輕載并進入步驟c4,其中VL為使實例保持正常負載范圍內單位時間最小請求數,N為應用當前實例數目;c3.判斷當前該應用的實例數是否小于平臺允許應用的最大實例數NH,若是,則進入步驟d,若否,則反饋無法操作信息到平臺; c4.判斷當前該應用的實例數是否大于平臺允許應用的最小實例數NL,若是,則進入步驟e,若否,則反饋無法操作信息到平臺。
【文檔編號】H04L29/08GK103916396SQ201410140537
【公開日】2014年7月9日 申請日期:2014年4月10日 優先權日:2014年4月10日
【發明者】陸鑫, 李濤 申請人:電子科技大學
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
韩国伦理电影