一種面向微服務架構的容器級彈性資源供給系統及方法
【技術領域】
[0001] 本發明設及一種面向微服務架構的容器級彈性資源供給系統及方法,屬于互聯網 和資源管理領域,特別是突發負載場景下的容器資源彈性供給問題。
【背景技術】
[0002] 微服務架構(Microservice)體現了互聯網應用的設計思想,其核屯、理念是細粒度 模塊劃分、服務化接口封裝、輕量級通信交互,具有W下兩點優勢:(1)模塊自治性強,能很 好滿足互聯網應用變化快,模塊獨立更新的需求;(2)模塊擴展性好,能很好滿足互聯網應 用用戶量難預測,資源動態分配的需求。其中,前者設及的是應用開發和設計范疇;后者強 調的是應用運行和維護問題,也是本文關注的重點。根據Gadner報告,微服務本身具有良 好的擴展性,正逐漸成為構造互聯網應用的主流架構模式,但從運行和維護的視角來看,應 對典型的互聯網突變負載(Flash-crowds)場景,保障應用服務質量(如ality of Service) 依舊面臨挑戰(服務質量是指應用軟件對時間要求的滿足程度,響應時間是其重要的度量 指標之一,比如用戶服務質量為5秒,即表示用戶從請求發起到請求響應的時間間隔不應超 過5秒),比如化tf lixjacebookjwitter等。
[0003] 近年來,輕量級容器技術應運而生,其本質是模擬進程運行環境,具有資源占用 少、應用啟動快等特點,正逐步成為支撐微服務運行的主流架構平臺。容器具有秒級資源供 給的特點,可很好的滿足互聯網應用負載突變對實時資源供給的需求。然而,已有方法或受 限于物理機靈活性不夠,資源難W彈性供給;或受限于虛擬機資源的供給分鐘級時效性,通 常只能適用于周期變化(Time-of-day)的負載模式。隨著互聯化技術的快速發展和深入應 用,如何應對突變負載(Flash-crowds)依然面臨挑戰,如京東采用容器作為2015年"618"限 時搶購活動,用戶訪問數增長率高于預期,導致部分應用構件出現"無響應"、"卡頓"等現 象。
[0004] 已有工作主要面向物理機和虛擬機場景實現資源的彈性供給。一些文獻針對物理 資源難W快速供給的特點,或采用容量規劃,W服務質量作為約束條件,估算應用的峰值資 源需求;或采用準入控制機制,根據資源供給量反推應用可承受的峰值負載,通過拒絕服務 策略來保障應用的服務質量。如Ludmila化erkasova等人提出的基于準入控制機制,建立 會話與吞吐量的損失模型,推演資源的供給需求。又如Robedsson A等人提出的基于線性 模型的資源需求方程組,在保障應用質量的提前下估算資源需求的峰值,從而達到資源按 需供給的目的。一些文獻考慮虛擬機性能開銷因素,采用模型驅動的方法刻畫虛擬化環境 下應用的資源需求變化,并W此作為資源提供的依據。運些方法通常采用增強學習 (Reinforcement Learning)、統計學習 (Statistical Learning)等機制進行模型參數訓 練。如Karlsson Μ等人提出基于性能隔離的方法分析每個服務實例的資源需求,分別對每 種服務構建性能變化模型,從而進行自適應資源供給;一些文獻考慮虛擬機之間相互性能 干擾問題,采用機器學習 (Statistical Machine Learning)、模糊控制(Fuzz;y Conhol)、 概率論(Probability Theory)等方法刻畫出虛擬機之間相互性能干擾對應用資源供給的 影響,并W此作為應用資源供給的依據。如Bod出P等人提出的基于機器學習的方式,通過 歷史數據集合對應用模型的性能參數進行規則訓練,并根據得到的資源供給規則進行資源 動態調整。然而,由于虛擬機資源供給需要分鐘級,因此上述方法通常只適用于負載隨時間 周期性變化(T ime-of-day)的應用場景。
【發明內容】
[0005] 本發明技術解決問題:克服現有技術的不足,提供一種面向微服務架構的容器級 資源供給方法,解決了已有方法難W適用突發負載模式,存在用戶服務質量難W保障的不 足。
[0006] 本發明技術解決方案:一種面向微服務架構的容器級彈性資源供給系統,包括數 據采集器、性能建模器、響應時間預測器、前饋控制器和容器調度器,其中:
[0007] 數據采集器,周期性監測容器CPU、內存、磁盤I/O、網絡I/O系統資源,W及每秒用 戶請求數;另外,數據采集器負責建立"負載-偏好資源利用率",因為容器的資源偏好具有 差異性,比如I/O密集型容器,其磁盤傳輸、網絡傳輸等資源利用率可能要高于CPU的利用 率,又如計算密集型容器,其CPU和內存的利用率可能較磁盤10要偏高些。具體而言,數據采 集器周期性取得CPU利用率、內存利用率、磁盤I/O、網絡I/O運個四個參數中的最高值,并將 其定義為偏好資源利用率,然后構造"負載-偏好資源利用率";
[000引性能建模器,根據數據采集器得到的數據,通過化ckson開環網絡中的性能方程及 流量方程進行建模。在偏好資源利用率已知條件下,構建微服務架構下"負載-響應時間"的 關聯方程;
[0009] 響應時間預測器,"負載-響應時間"關聯方程存在未知變量,只有確定該未知變 量,方能計算出響應時間。因此,采用卡爾曼濾波,將未知變量作為預測矩陣,將已知變量作 為觀測矩陣,通過對未知變量進行賦值,估算響應時間,并將估算值與監測值得方差及均 值傳遞給前饋控制器;
[0010] 前饋控制器,分析殘差的方差及均值,通過模糊邏輯得到濾波參數Γ負載-響應時 間"關聯方程中未知變量的取值)的校準值,其目的是修正未知變量,使得估算的響應時間 更加準確;
[0011] 容器調度器,根據響應時間預測值是否違背應用服務質量,按需進行容器級資源 的供給。
[0012] 所述性能建模器中,通過化ckson開環網絡構建微服務架構下"負載-響應時間"的 關聯關系方程具體如下:
[001引其中,視應用構件,i是應用構件實例,j,i的關系可描述為:用戶請求將會流經多 個應用構件jl. . . jn,每個應用構件j都含有多個實例il. . .im;每個實例都運行在容器中;Uj e[0,l)是應用構件j的偏好資源利用率;UOj是指當應用構件j在零負載情況下的偏好資源 利用率;丫^是指應用構件j的第i個容器的并發數,即每秒到達的請求數,滿足泊松到達過 程;Tji是指應用構件j的第i個容器的服務處理時間;Tj是指應用構件j的平均服務處理時 間;d是指服務總延遲時間;B是指服務總響應時間;τ堤服務j的負載與資源利用率的相關 系數;uj,UW,丫 ,B是通過監測獲取的,是根據歷史數據給出的經驗值;
[0016]方程(1)代表偏好資源利用率等于應用構建本身的開銷加上有負載時的額外開 銷;方程(2)代表響應時間等于總延遲加上總服務處理時間,其中,服務處理時間等于應用 構建的平均服務時間與未使用的偏好資源利用率的反比;從而可W從"負載-偏好資源利用 率'得到"負載-響應時阿'的性能方程。
[0017] 所述響應時間預測器具體過程。
[0018] (1)對于方程(1)和方程(2),總延遲和應用構件的平均服務處理時間是難W預測 的,是未知數;偏好資源利用率、應用構件本身的資源開銷、負載是可W觀測得到的,是已知 數;
[0019] (2)通過卡爾曼濾波算法,將未知數作為預測矩陣;已知數作為觀測矩陣;
[0020] (3)通過給未知數進行賦值,得到響應時間的預測值。
[0021 ]卡爾曼的濾波方程如下:
[0022] X(k)=H(k)X(k-l)+Qk (3)
[0023] Z(k)=H(k)X(k)+化(4)
[0024] 其中X化)是預測矩陣,其值為(r,,c//VJ,格式請調整代表服務處理時間與服務流 總延遲的矩陣;Z化)為觀測矩陣,其值為0/,.,叫.,.,r,,,拼,格式請調整代表應用實例的 資源利用率、負載與響應時間的矩陣;Q化)是過程激勵噪聲協方差矩陣,其符合Q化)~N(0, Q),R化)是測量噪聲協方差矩陣,其符合R化)~N(0,R)的高斯分布。
[0025] 所述前饋控制器具體過程,用W修正卡爾曼濾波中的未知數,提高響應時間預測 的準確性。
[0026] (1)由于突發負載具有不確定性,所W,需要調節卡爾曼濾波器的噪聲方差陣。
[0027] (2)噪聲方差陣是符合高斯分布的矩陣,可表示為標準差的一階方程;而濾波器計 算過程中的殘差(觀測矩陣真實值與預測值的差),該差值代表濾波器對測量值的依賴程 度,其值增大時,代表負載在突發變化,濾波器預測的準確性在下降,而該值又與噪聲方差 陣的標準差有關,所W,可W通過分析殘差的方差與均值,調整噪聲方差陣的變化,從而保 證濾波器預測的準確性。
[0028] 通過TS