TWI591542B - 雲端計算節點、方法與系統及電腦可讀媒體 - Google Patents
雲端計算節點、方法與系統及電腦可讀媒體 Download PDFInfo
- Publication number
- TWI591542B TWI591542B TW104138150A TW104138150A TWI591542B TW I591542 B TWI591542 B TW I591542B TW 104138150 A TW104138150 A TW 104138150A TW 104138150 A TW104138150 A TW 104138150A TW I591542 B TWI591542 B TW I591542B
- Authority
- TW
- Taiwan
- Prior art keywords
- virtual machine
- performance
- node
- computing
- slo
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 50
- 238000012545 processing Methods 0.000 claims description 47
- 230000009471 action Effects 0.000 claims description 18
- 238000012544 monitoring process Methods 0.000 claims description 15
- 230000008859 change Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 7
- 230000005012 migration Effects 0.000 claims description 4
- 238000013508 migration Methods 0.000 claims description 4
- 230000000694 effects Effects 0.000 claims description 3
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 238000005192 partition Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 34
- 230000008569 process Effects 0.000 description 13
- 239000003795 chemical substances by application Substances 0.000 description 12
- 238000013500 data storage Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000013480 data collection Methods 0.000 description 9
- PASHVRUKOFIRIK-UHFFFAOYSA-L calcium sulfate dihydrate Chemical compound O.O.[Ca+2].[O-]S([O-])(=O)=O PASHVRUKOFIRIK-UHFFFAOYSA-L 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3442—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5019—Ensuring fulfilment of SLA
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/815—Virtual
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Description
本文所述之實施例一般關於電腦系統。尤其是,實施例關於雲端計算。
雲端計算係指能夠提供彈性的計算效能給眾多使用者的高度可擴展網路計算系統。雲端計算一般涉及密集緊縮計算伺服器(稱為節點)的叢集,其中每個節點可能執行數十個虛擬機器。典型地,每個節點包括管理程序或其他虛擬化框架,並且整個雲端計算叢集包括在特定計算節點上管理虛擬機器之實例的一或多個雲端控制器。OpenStack是這樣的雲端計算框架之一個實例。
在多租戶雲端計算環境中,不同的客戶可能控制在特定節點上的虛擬機器。因此,諸如處理器、網路、和儲存資源之節點的資源必須在虛擬機器之間且因此在不同客戶之間共享。當創建虛擬機器時,使用者選擇明定虛擬機器之資源要求的實例類型。靜態資源要求包括多
個虛擬中央處理單元(vCPU)、記憶體、磁碟和網路。
針對雲端服務提供者(CSP)的上述要求具有兩個挑戰。第一個挑戰是CSP必須在任何伺服器系統(無論CPU及其他硬體元件)中以相同效能將允諾的資源提供給虛擬機器實例。因此,CSP必須定義效能指標並確保每個虛擬機器滿足效能。然而,此要求往往沒有得到一致地滿足。第二個挑戰是應該有所配置之基礎設備的最大使用。因此,CSP可能經常希望超量配置CPU和記憶體至最大化基礎設備之利用和最小化效能下降之差異的限制。
現有的超量配置解決方式建議使用最佳比例。然而當實作這樣的解決方案時,效能下降會發生在虛擬機器被分配四個或更多vCPU之實例中超量配置的時候。例如,若第一虛擬機器(VM1)被配置4個vCPU,其中一個被分配在第一實體CPU(pCPU1)上且第二虛擬機器(VM2)被分配也在pCPU1上的1個vCPU,則VM1將必須等待其vCPU變成可用,由於其被VM2共享。若VM1的其他3個vCPU與其他VM共享,則VM1將必須等待更長的時間以等待所有其vCPU皆變成可用的。這導致VM1的效能延遲。
這種下降目前正藉由不超量配置虛擬vCPU(例如,以單一vCPU開始且當有必要時擴展);監控工作量利用、CPU準備和CPU利用指標及重新設置虛擬機器大小;和將虛擬機器遷移到具有相對自由資源,或者沒
有被超量配置的伺服器來彌補。然而,不超量配置是通用的建議,其不保證在每個單位時間在每個單一伺服器系統上滿足效能服務級協議(SLA)。此外,監控和重新調整大小的虛擬機器需要虛擬機器以較少vCPU緩慢開始並添加更多,因此需要基礎設備為可用的或始終未被充分利用的。此外,一旦目的地伺服器具有滿的經分配之容量時,遷移虛擬機器可能會導致相同的效能延遲。
100‧‧‧系統
102‧‧‧計算節點
104‧‧‧雲端控制器
106‧‧‧雲端狀態資料庫
108‧‧‧網路
120‧‧‧處理器
132‧‧‧輸入/輸出子系統
134‧‧‧記憶體
136‧‧‧資料儲存裝置
138‧‧‧通訊電路
122‧‧‧核心
126‧‧‧非核心
124‧‧‧效能監控單元
128‧‧‧PMU
130‧‧‧快取記憶體
138‧‧‧通訊電路
140‧‧‧處理器
142‧‧‧I/O子系統
144‧‧‧記憶體
146‧‧‧資料儲存裝置
148‧‧‧通訊電路
200‧‧‧環境
202‧‧‧虛擬機器
204‧‧‧資料收集模組
205‧‧‧Per VM監控器
206‧‧‧爭用分數判定模組
207‧‧‧節點代理器
208‧‧‧通訊模組
220‧‧‧環境
222‧‧‧計算服務模組
224‧‧‧排程器模組
226‧‧‧通訊模組
221‧‧‧SCU
300‧‧‧方法
305-350‧‧‧處理方塊
402‧‧‧CSA
404‧‧‧資源群組子系統
406‧‧‧虛擬管理常駐程式服務
410‧‧‧OS排程器
600‧‧‧方法
610-670‧‧‧處理方塊
700‧‧‧方法
705-745‧‧‧處理方塊
800‧‧‧電腦系統
802‧‧‧處理器
804‧‧‧主記憶體
818‧‧‧輔助記憶體
830‧‧‧匯流排
824‧‧‧發射執行資料
823‧‧‧軌跡偏好
826‧‧‧處理邏輯
808‧‧‧網路介面卡
810‧‧‧使用者介面
812‧‧‧字母數字輸入裝置
814‧‧‧游標控制裝置
816‧‧‧信號產生裝置
836‧‧‧周邊裝置
834‧‧‧硬體為基API登錄框架
822‧‧‧軟體
831‧‧‧機器可讀儲存媒體
在附圖的圖中藉由舉例而非限制地方式說明實施例,其中相同參考編號係指類似元件。
第1圖繪示雲端計算系統的一實施例。
第2圖繪示雲端計算系統的另一實施例。
第3圖係為繪示用於進行服務級目標(SLO)管理之程序的一實施例之流程圖。
第4圖繪示高階函數描述的一實施例。
第5圖繪示虛擬機器配置的一實施例。
第6圖係為繪示公平超量配置程序的一實施例之流程圖。
第7圖係為繪示公平超量配置程序的一實施例之流程圖。
第8圖繪示電腦系統的一實施例。
本發明可能在用於在雲端計算環境中工作量排程之系統、裝置、及方法中具體化,如下所述。在說明書中,可能提出如元件和系統配置的許多具體細節以提供本發明之更全面理解。在其他實例中,不詳細顯示熟知結構、電路、等等以避免不必要地模糊本發明。
根據一實施例,伺服器資源利用被最大化,而確保SLA永遠被實踐。在這樣的實施例中,基於處理器效能特性來定義服務級目標(SLO)。在進一步實施例中,基於SLO參數來定義虛擬機器實例類型以獲得虛擬機器的資源要求。在又進一步實施例中,根據使用者定義SLO參數和目前伺服器狀態在節點上排程並管理虛擬機器。此外,SLO參數被儲存並傳送至各種伺服器節點。
根據一實施例,虛擬機器SLO參數被轉譯成平台資源(例如,計算時間、處理器頻率、快取、記憶體/磁碟/網路頻寬、記憶體大小)。在其他實施例中,虛擬機器被持續監控以基於轉譯參數來偵測SLO違規。在這樣的實施例中,以施用以恢復遵從SLO參數之效能之校正動作的形式來進行動態調整。
本發明之實施例的元件可能在硬體、軟體、韌體、或硬體、軟體、或韌體之任何組合中實作。硬體之詞通常係指具有實體結構(如電子、電磁、光學、電光、機械、電子機械部件、等等)的元件。軟體之詞通常係指邏輯結構、方法、程序、程式、常式、處理、演算法、公式、表達式、等等。韌體之詞通常係指在硬體結構(例
如,快閃記憶體或唯讀記憶體)中實作或具體化的邏輯結構、方法、程序、程式、常式、處理、演算法、公式、或表達式。韌體之實例係微碼、可寫控制儲存、及微編程結構。
第1圖繪示資訊處理系統100的一實施例。系統100包括若干計算節點102、雲端控制器104、及雲端狀態資料庫106,全部透過網路108通訊。使用上,如下方更詳細討論,每個計算節點102具體例證說明一或多個虛擬機器以進行計算任務。每個計算節點102監控其效能(包括快取爭用)、及產生爭用和容量分數。用於每個計算節點102的爭用分數被儲存在雲端狀態資料庫106中。雲端控制器104監控爭用分數並基於每個計算節點102之報告的爭用分數來排程新虛擬機器。
在一實施例中,每個計算節點102可能具體化成能夠進行本文中所述之功能之任何類型的計算或電腦裝置,包括但不限於電腦、多處理器系統、伺服器、機架式伺服器、刀鋒伺服器、膝上型電腦、筆記型電腦、網路設備、網絡設備、分散式計算系統、處理器為基系統、及/或消費性電子裝置。每個計算節點102示範地包括兩個處理器120、輸入/輸出子系統132、記憶體134、資料儲存裝置136、及通訊電路138。當然,在其他實施例中,計算節點102可能包括其他或額外元件,如在伺服器裝置中常見的元件(例如,各種輸入/輸出裝置)。此外,在一些實施例中,一或多個說明性元件可能被併入另一元件
中或以其他方式形成另一元件的一部分。例如,在一些實施例中,記憶體134,或其部分,可能被併入在一或多個處理器120中。
每個處理器120可能具體化成能夠執行本文所述之功能的任何類型之處理器。每個示範處理器120是多核心處理器,然而在其他實施例中每個處理器120可能具體化成單一或多核心處理器、數位信號處理器、微控制器、或其他處理器或處理/控制電路。每個處理器120示範地包括四個處理器核心122和非核心126。每個處理器核心122係能夠執行編程指令的獨立處理單元。
每個處理器核心122包括效能監控單元(「PMU」)124。每個PMU 124可能具體化成能夠記錄並監控通過各自處理器核心122之指令流的若干效能計數器。例如,每個PMU 124可能能夠計數時脈週期、發出的指令、引退的指令、快取未中、或類似事件。PMU 124可能被編程以使用處理器核心122的模型5專用暫存器來監控特定效能統計。在一實施例中,每個PMU 124可能包括四個完全可編程硬體計數器和三個固定功能硬體計數器。軟體可能使用如Linux核心的「perf」子系統之核心介面來存取PMU 124。雖然每個示範計算節點102包括具有8個處理器核心122之四個接口的兩個處理器120,但在其他實施例中,每個計算節點102可能包括具有一個、兩個、或更多處理器核心122的一個、兩個、或更多處理器120。尤其是,此揭露也可應用於單處理器或單核計算
節點102。
每個處理器120也包括非核心126。在示範實施例中,每個非核心126包括未包括在處理器核心122的特定處理器120之任何部分(例如,特定處理器120的所有元件,除了處理器核心122本身之外)。例如,每個示範處理器120之非核心126包括PMU 128和快取記憶體130。類似於處理器核心122的PMU 124,PMU 128監控非核心126的效能統計,且可能包括若干可編程或固定功能的硬體效能計數器。快取記憶體130可能是由處理器核心122共享的最後級快取。在一些實施例中,PMU 128可能監控至快取記憶體130的存取,包括記錄快取未中、傳送之資料量、及其他快取資訊。雖然未顯示,但非核心126可能額外包括處理器或系統晶片的典型元件。例如,每個非核心126可能包括記憶體控制器、圖形處理器、輸入/輸出控制器、電源管理電路、或處理器120的其他元件。
記憶體134可能具體化成能夠進行本文所述之功能的任何類型之揮發性或非揮發性記憶體或資料儲存器。操作中,記憶體134可能儲存在計算節點102之操作期間使用的各種資料和軟體,如作業系統、應用程式、程式、函式庫、及驅動程式。記憶體134經由I/O子系統132通訊地耦接至處理器120,其可能具體化成電路及/或元件以促進與處理器120、記憶體134、及計算節點102之其他元件的輸入/輸出操作。例如,I/O子系統132可能
具體化成或以其他方式包括記憶體控制器中樞、輸入/輸出控制中樞、韌體裝置、通訊鏈結(即,點對點鏈結、匯流排鏈結、線路、電纜、光導、印刷電路板走線、等等)及/或其他元件和子系統以促進輸入/輸出操作。在一些實施例中,I/O子系統132可能形成一部分系統晶片(SoC)且連同處理器120、記憶體134、和計算節點102之其他元件合併在單一積體電路晶片上。
資料儲存裝置136可能具體化成配置用於短期或長期儲存資料的任何類型之裝置,例如記憶體裝置及電路、記憶卡、硬碟機、固態硬碟、或其他資料儲存裝置。資料儲存裝置136可能儲存由計算節點102監控的效能統計。計算節點102的通訊電路138可能具體化成能夠透過網路108在計算節點102、雲端控制器104、雲端狀態資料庫106、及/或其他遠端裝置之間進行通訊的任何通訊電路、裝置、或其集合。通訊電路138可能配置以使用任一或更多通訊技術(例如,有線或無線通訊)及關聯協定(例如,乙太網路、藍芽®、Wi-Fi®、WiMAX、等等)以影響上述通訊。
在一實施例中,雲端控制器104管理虛擬機器或分散於系統100之計算節點102之間的其他計算實例。雲端控制器104可能具體化成能夠進行本文所述之功能的任何類型之伺服器計算裝置、或裝置之集合。就其本身而論,雲端控制器104可能具體化成單一伺服器計算裝置或伺服器和關聯裝置的集合。例如,在一些實施例中,
雲端控制器104可能具體化成從跨網路108分散之多個計算裝置形成的並操作在公開或私人雲端的「虛擬伺服器」。藉此,雖然雲端控制器104在第1圖中被顯示為實作成單一伺服器計算裝置,但應了解雲端控制器104可能實作成共同協作的多個裝置以促進以下所述的功能。示範地,雲端控制器104包括處理器140、I/O子系統142、記憶體144、資料儲存裝置146、通訊電路148、及/或在伺服器或類似計算裝置中常見的其他元件和裝置。雲端控制器104的那些個別元件可能類似於計算節點102的對應元件,其說明可適用於雲端控制器104的對應元件且於此不重複以免模糊本揭露。
雲端狀態資料庫106儲存跨系統100同步的資訊,包括效能統計。雲端狀態資料庫106可能具體化成專用資料庫伺服器、分散式資料儲存器、或能夠維持用於系統100之一致狀態的任何其他資料儲存系統。就其本身而論,雲端狀態資料庫106的副本或部分可能儲存在每個計算節點102之資料儲存器136及/或雲端控制器之資料儲存器146中。可能使用任何通訊協定在計算節點102、雲端控制器104、及/或雲端狀態資料庫106之間傳送更新的雲端狀態資訊。在一些實施例中,可能使用信息匯流排(例如,實作進階信息佇列協定(AMQP)的信息,如rabbitmq)來非同步地傳送雲端狀態資訊。
如下方更詳細討論,計算節點102、雲端控制器104、及雲端狀態資料庫106可能配置以彼此及/或透過
網路108與系統100之其他裝置傳送和接收資料。網路108可能具體化成若干不同有線及/或無線網路。例如,網路108可能具體化成或以其他方式包括有線或無線區域網路(LAN)、有線或無線廣域網路(WAN)、蜂巢式網路、及/或如網際網路之公開可存取的全球網路。就其本身而論,網路108可能包括若干額外裝置,如額外電腦、路由器、及交換器,用以促進系統100之裝置之間的通訊。
第2圖繪示計算節點102的一實施例,其建立操作期間的環境200。示範環境200包括若干虛擬機器202、資料收集模組204、per虛擬機器(Per VM)模組205、爭用分數判定模組206、節點代理器207及通訊模組208。環境200的各種模組可能具體化成硬體、韌體、軟體、或以上之組合。
根據一實施例,每個虛擬機器202進行在計算節點102上的雲端計算工作量。每個虛擬機器202可能被固定、分派、或以其他方式配置給一或多個處理器核心122。在一些實施例中,每個虛擬機器202可能指明若干想要的虛擬CPU,且虛擬機器202可能分配給此若干的處理器核心122。在多租戶雲端計算環境中,每個虛擬機器202可能由不同實體控制且因此可能額外執行具有不同效能特性的工作量。尤其是,每個虛擬機器202可能對計算節點102之快取記憶體130施加不同壓力。
如下方所述,虛擬機器202被具體例證說明
且以其他方式由雲端控制器104管理。資料收集模組204收集用於計算節點102的效能資料。資料收集模組204可能收集指示在計算節點102上之快取爭用的資料,例如測量在快取記憶體130中之快取未中的資料。資料收集模組204可能包括用於每個處理器120及/或計算節點102之處理器核心122、或用於每個虛擬機器202的個別資料收集器。資料收集模組204可能過濾收集的資料以移除雜訊。資料收集模組204的資料收集器可能例如使用如zeromq信息匯流排之信息匯流排來非同步地與彼此通訊。
Per VM監控器205監控虛擬機器202的利用和效能。在一實施例中,Per VM監控器205指示虛擬機器何時是活動的。在上述實施例中,Per VM監控器205使用硬體事件以使用per執行緒ID來監控虛擬機器或程序活動。此外,Per VM監控器205維護一列執行緒ID用於每個程序並使用效能分析工具(例如,用於Linux的效能計數器(perf))以預定間隔(例如,每秒)來取樣per執行緒ID硬體計數器。在又一實施例中,Per VM監控器205群聚per執行緒監控資料至per程序效能,其被資料收集模組204取得。
爭用分數判定模組206計算爭用分數作為由資料收集模組204收集的效能資料之函數。爭用分數可能包括爭用指標和爭用分數級別兩者。爭用指標可能包括描述對計算節點102之所有處理器120之快取未中的聚合資料。爭用分數級別可能由啟發式演算法來產生,並可能從
用於低爭用、中爭用、和高爭用(例如,經由量化的形式)的級別來選擇。在一實施例中,爭用分數測量在計算節點102上經歷的快取記憶體130爭用。爭用分數可能具體化成包括指令之每一些參考數量(例如,每千個指令)的快取未中,以及爭用分數級別(例如,高、中、或低爭用)的元組。
節點代理器207實作控制程序以在計算節點102上進行超量配置。根據一實施例,節點代理器從Per VM監控器205接收虛擬機器監控資料並動態地重新調整資源以維持在計算節點102的效能,如將在下面更詳細地描述。
通訊模組208傳送效能資料至雲端狀態資料庫106。效能資料接著可透過雲端狀態資料庫106存取雲端控制器104。通訊模組208可能傳送爭用分數作為包括爭用指標和爭用分數級別的元組。通訊模組208可能使用任何通訊方法以與系統100之其他組件連接。例如,通訊模組208可能具體化成信息匯流排。
根據一實施例,每個計算節點102與雲端控制器104通訊,其中各者可能建立操作期間的環境220。示範環境220包括計算服務模組222、排程器模組224、及通訊模組226。環境220的各種模組可能具體化成硬體、韌體、軟體、或以上之組合。計算服務模組222接收請求以實例化新的虛擬機器202,並用以排程新的虛擬機器202用於在排程器模組224所選擇的計算節點102上執
行。計算服務模組222可能從任何適當來源接收命令。例如,計算服務模組222可能從雲端系統管理員或透過網頁為基控制介面從雲端計算客戶接收命令。作為另一實例,在一些實施例中,計算服務模組222可能基於對計算服務的需求從新的虛擬機器202接收命令,例如用以擴展以對應用需求作出反應。在進一步實施例中,計算服務模組222基於爭用分數來偵測SLA違規,同時監控應用效能。在這樣的實施例中,計算服務模組222確定將要施加以恢復應用效能至指定的SLA之控制動作。
排程器模組224基於接收的效能資料來選擇適當計算節點102。在一些實施例中,排程器模組224可能具體化成過濾排程器,其選擇具有最低報告爭用分數級別的計算節點102。當兩個或更多計算節點102具有最低報告爭用分數級別時,排程器模組224可能隨機地或藉由使用任何其他可用的選擇標準來選擇一個。例如,在一些實施例中,排程器模組224可能進一步排序計算節點102且選擇具有最低爭用指標的計算節點102。
通訊模組226對系統100內的所有計算節點102從雲端狀態資料庫106接收效能資料。通訊模組226可能對每個計算節點102從雲端狀態資料庫106接收元組,包括爭用指標和爭用分數級別。通訊模組226可能使用任何通訊方法以與系統100的其他組件連接。例如,通訊模組226可能具體化成信息匯流排。
根據一實施例,計算服務模組222包括服務
計算單元(SCU)221。在這樣的實施例中,SCU 221在計算消耗指標方面定義了服務級目標(SLO)。計算消耗指標係基於處理器122效能特性(例如,執行指令的能力)。在一實施例中,計算消耗指標被測量為每秒十億指令(GIPS)等級。處理器122當執行只具有擁有最低每指令週期(CPI)或最高每週期指令(IPC)之類型的指令之程式時達到峰值GIPS等級。因此,也在計算服務模組222計算計算效能指標以使使用操作頻率的實際GIPS合格。
根據一實施例,SCU 221被附接至在計算服務模組222產生的每個計算實例。在此實施例中,SCU 221乘以配置的虛擬核心以對虛擬機器202提供允許的總消耗量。例如,表格1顯示實例類型和對應的SLO。
根據一實施例,計算作為虛擬機之計算節點102的全部和淨空容量。此外,計算測量提供給每個實例的IPC是否匹配SLO。計算包括以下:
a. SCU_Theoretical=全部GIPS
b. SCU_Actual=基於操作頻率的GIPS
c. SCU_IPC_Expected=eg 1.27(基於SPECint結果之專用於Intel® Xeon E5處理器)
d. SCU_TPUT_Current=基於主機上之監控資料的更新
e. SLO Error=SCU_Theoretical-SCU_Actual
f. IPC error %=(SCU_TPUT_Current/SCU_TPUT_Expected) * 100
g. Node_Capacity_Max=(邏輯核心 * 全部接口) *SCU_Theoretical
h. Node_Capacity_Allocated=(total_logical cores_allocated *SCU_Actual)
i. Node_Capacity_Used=PC* total_logical cores_allocated*
j. Node_Capacity_Headroom=Node_Capacity_Max-Node_Capacity_Allocated
第3圖係為繪示用於進行對虛擬機器之SLO管理之程序300的一實施例之流程圖。方法300可能藉由可能包含硬體(例如,電路、專用邏輯、可編程邏輯、等等)、軟體(如在處理裝置上運行的指令)、或以上之組合的處理邏輯進行。為了簡潔和清楚呈現而以線性序列來顯示方法300之程序;然而,可以預期的是能並行、不同步、或以不同順序來執行它們其中任意數量者。為了簡潔、清晰和容易理解,參照第1-2圖所討論的許多的細節可能不在這裡討論或重複。
在處理方塊305中,反應於對實例化新虛擬機器202之請求而在計算服務模組222實作之使用者介面
中提供類似於表格1和SLA所示之那些的實例類型。因此,使用屬於由SCU 221指明和支援之多個實例類型之其一者的計算服務模組222來建立虛擬機器。在處理方塊310中,計算服務模組222識別用於虛擬機器202的資源需求。在處理方塊315中,排程器224識別在其上的計算節點102以排程虛擬機器202。在一個實施例中,排程器模組224考慮到虛擬機器202的資源需求和各個控制節點102的目前狀態以確定用於虛擬機器202的初始放置。
在處理方塊320中,排程器模組224排程在識別之計算節點102上的虛擬機器202。在處理方塊325中,用於虛擬機器202的SLO參數被儲存在資料庫106內且被傳送至虛擬機器202將執行(例如,使用rabbitmq信息)之所識別之計算節點102上的節點代理器207。在處理方塊330中,將SLO需求映射至計算節點102上的資源。在處理方塊330中,虛擬機器202在計算節點102開始操作。根據一實施例,根據下述之公平超量配置程序在計算節點102實作調整。
在處理方塊340中,Per VM監控器205測量虛擬機器202之利用和效能。因為應用表現出相變或經歷隨時間改變負載,資源使用情況也不同。由於跨在計算節點102上執行之所有虛擬機器202的上述改變,相關虛擬機器202所面臨的爭用也改變。因此,可能基於藉由Per VM監控器205的持續監控來進行動態調整。
在處理方塊345中,節點代理器207基於從
Per VM監控器205接收之監控效能結果來判斷虛擬機器202效能是否低於SLO參數。根據一實施例,節點代理器207基於分配的SLO參數來使用目前虛擬機器202效能和預期虛擬機器202效能。若虛擬機器202效能不低於SLO參數,則控制返回至虛擬機器202繼續被監控的處理方塊340。然而,若虛擬機器202效能低於SLO參數,則初始校正動作,處理方塊350。在一實施例中,計算資源配置的改變量以修改資源配置以達到預期效能。
根據一實施例,節點代理器207可能進行開機、節流或遷移動作以調整資源配置。當應用效能低於預期程度時,開機增加資源。節流減少提供給應用的資源。在一實施例中,當這樣的資源減少不導致SLA違規時初始減少。例如,當提供額外快取時,串流應用不表現降低快取未中率。同樣地,當快取可用性降低時,快取未中率不會顯著增加。遷移涉及遷移虛擬機器202至相同計算節點102上的不同接口或至不同計算節點102以減少吵雜鄰居的干擾。這有效地增加被遷移之至虛擬機器202之可用資源。
根據一實施例,節點代理器207實作資源控制以限制、佔用、並隔離資源使用(例如,CPU、記憶體、磁碟I/O、等)以藉由減少資源爭用並增加效能之可預測性來管理CPU控制器和CPUSET控制器子系統以滿足應用SLA,並且防止單一或虛擬機器群組獨占資源,或影響其它環境。第4圖繪示用於進行虛擬機器資源配置之
高階函數描述的一實施例。
在一實施例中,實作使用者空間常駐程式(控制服務代理器或CSA)402以與核心資源群組子系統404互動以初始化並安裝資源群組控制器。此外,CSA與虛擬管理常駐程式服務406互動以進行資源配置和計算節點102資源之分割和動態資源分配。CPUSET提供用於分配一組pCPU至一組虛擬vCPU的機制以致能限制虛擬機器之CPU放置只到VM之目前CPUSET內之資源的映射。在一實施例中,映射形成在由CSA控制的虛擬檔案系統中可見的巢狀階層。資源群組子系統404定義用於每個虛擬機器的CPU時間共享。CSA 402使用此群組以管理CPU共享,其中每個群組階層式地獲得共享。在一實施例中,CPU共享被設為1024作為預設。然而,將CPU共享設為更高值提供CPU群組更高的CPU量,它是由CSA 402開機或節流虛擬機器來進行。根據一實施例,OS排程器410是提供用於排程的路由器(例如,循環或公平共享)。圖5示出虛擬機股分配的一個實施例。第5圖繪示虛擬機器共享配置的一實施例。
根據一實施例,固定資源配置模型分割所有虛擬機器之間的系統資源,使得所要求的總資源等於可用的資源。在這種實施例中,由虛擬機器所請求的資源是基於其最大消耗量,使得:
然而由於相位的改變,虛擬機器不持續消耗所有請求的資源。因此資源可能被超量配置並在虛擬機器之間共享。在超量配置的環境中,可用的總系統資源將比每個VM所需的資源之總和更少。資源被動態地重新分配,如資源模型所示:
根據一實施例,資源最佳化和公平超量配置可能藉由邏輯分割在每個CPU核心基礎上的處理器120資源來實作。這樣的邏輯分割方法適用於以關於只包含在沒有其他虛擬機器競爭此核心內之可用頻寬的核心中之這樣的方法來實作虛擬機器的佈置之情境。例如,能以此方法來處理吵雜鄰居的情境。
第6圖係為繪示用於進行公平超量配置之程序600的一實施例之流程圖。方法600可能藉由可能包含硬體(例如,電路、專用邏輯、可編程邏輯、等等)、軟體(如在處理裝置上運行的指令)、或以上之組合的處理邏輯進行。為了簡潔和清楚呈現而以線性序列來顯示方法600之程序;然而,可以預期的是能並行、不同步、或以不同順序來執行它們其中任意數量者。為了簡潔、清晰和容易理解,參照第1-5圖所討論的許多的細節可能不在這裡討論或重複。
在處理方塊610中,使用資源群組404 CPU和CPUSET控制器子系統來創建系統拓樸。在處理方塊620中,這些子系統在指定路徑由CSA安裝。在處理方塊
630中,創建系統預設池以只保留用於系統常駐程式和其他程序的一些CPU核心以運行。在處理方塊640中,藉由邏輯地創建用於屬於特定接口之所有邏輯核心的資源群組cpuset在每接口基礎下創建額外池。
在處理方塊650中,排程器模組224排程在計算節點102上的虛擬機器202並發送附加SLO信息與每個虛擬機器202(其包括在虛擬機器202上運行的vCPU的數量,連同其它元件(例如,所請求的計算服務模組222)。在處理方塊660中,虛擬機器202被放置和被請求,計算服務模組222被轉譯成cgroup 404 CPU共享。結果,確保最小保證。
根據一實施例,藉由固定對應於虛擬機器的vCPU至CPUSET子系統來進行放置虛擬機器202。此外,在具有虛擬機器通用唯一識別符(UUID)的CPU控制器資源群組子系統作為新的控制群組下創建新的階層。排程器模組224可能在計算節點102上放置額外虛擬機器,只要利用了總平台容量即可。在處理方塊670中,執行開始。
在一實施例中,虛擬機器202運行時間動態通常表示實際使用少,即使虛擬機器202SLO要求更多的CPU頻寬預留。這使得計算服務模組222藉由預定義超量配置因子決定密集緊縮下載。在進一步實施例中,當達到平台容量時作出虛擬機器202遷移決定以實踐其SLO。上述模型提供了強大且彈性的資源控制和廣泛的資源管理政
策之組合,其可能被利用並提供不同的服務品質以參與虛擬機器202。
第7圖係為繪示用於進行公平超量配置之程序700的一實施例之流程圖。方法700可能藉由可能包含硬體(例如,電路、專用邏輯、可編程邏輯、等等)、軟體(如在處理裝置上運行的指令)、或以上之組合的處理邏輯進行。為了簡潔和清楚呈現而以線性序列來顯示方法700之程序;然而,可以預期的是能並行、不同步、或以不同順序來執行它們其中任意數量者。為了簡潔、清晰和容易理解,參照第1-5圖所討論的許多的細節可能不在這裡討論或重複。
在處理方塊705中,在每接口基礎下創建平台拓樸。在一實施例中,每接口保留CPU的池,使得:
其中計算服務模組222=2個SCU。
在處理方塊710中,執行迴路以藉由排程器224接受用於新排程之虛擬機器202的輸入SLO信息。在一實施例中,虛擬機器SLO信息包括用於每虛擬機器202之每個vCPU的SCU需求。在處理方塊715中,藉由在適當接口放置虛擬機器202來實踐虛擬機器SLO。在一實施例中,藉由使用資源群組404固定vCPU至屬於特定接口的邏輯CPU來進行此處理。在處理方塊720中,使用適當資源群組404共享來保證虛擬機器202保留。此外,施用等於包括在SLO信息中的保留值之限制。在處理方塊
725中,每接口總使用的SCU被計算且資料庫106被更新。在處理方塊730中,額外的虛擬機器202被分配直到:Σ VM requested Total Socket Gips
一旦滿足條件就達到全容量。隨後,觀察者循環週期地檢查以偵測每接口的總使用SCU。因為虛擬機器202通常消耗比請求少很多的資源,因此通常可能執行超量配置。然而,當虛擬機器202正使用所請求的資源時無法實現超量配置。根據一實施例,當下列時針對ρ的因子超量配置發生:Σ VM current usage Total Requested SCUs,其中ρ=Total Socket SCUs-Σ VM current usage-τ,其中τ=8%
在處理方塊735中,判斷目前使用之虛擬機器SCU的總量是否≧90%接口SCU。若條件未符合,則控制返回至處理方塊730,其中額外虛擬機器被分配至接口。然而,目前使用之虛擬機器SCU的總量是否≧90%接口SCU之判斷表示一或更多虛擬機器220現在正試著使用其保留SCU。然而,虛擬機器220將很快開始遭受總使用SCU變成100%的接口容量(例如,已超量配置資源)。
在處理方塊740中,Per VM監控器205讀取資料以識別哪個虛擬機器220正試圖要求其共享。在一實施例中,資料包括從處理器120內之暫存器讀取的遙測資
料和映射至虛擬機器220的效能事件。在進一步實施例中,虛擬機器220被暫時分配給CPU之池中的CPU。在進一步實施例中,觀察者循環監控系統達預定的時間間隔以判斷系統是否達到平衡狀態。在這樣的實施例中,如果需要的話則以重新調整ρ以保持穩定狀態。在處理方塊745中,所識別的虛擬機器220是基於確保最少干擾雲端的策略來遷移。
示範電腦系統800包括處理器802、主記憶體804(例如,唯讀記憶體(ROM)、快閃記憶體、動態隨機記憶體(DRAM)(例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)、等等)、靜態記憶體(例如,快閃記憶體、靜態隨機存取記憶體(SRAM)、揮發性但高資料率RAM、等等)、及輔助記憶體818(例如,包括硬碟機的永久儲存裝置和永久多租戶資料庫實作),其經由匯流排830來彼此通訊。主記憶體804包括發射執行資料824(例如,藉由登錄框架所發射的資料)、及一或多個軌跡偏好823,其結合處理邏輯826和處理器802操作以執行本文所討論的方法。
處理器802代表一或更多通用處理裝置,例如微處理器、中央處理單元或之類。更具體而言,處理器802可能是複雜指令集計算(CISC)微處理器、精簡指令集計算(RISC)微處理器、極長指令字(VLIW)微處理器、實作其他指令集的處理器、或實作指令集之組合的處理器。處理器802可能也是一或更多專用處理裝置,例如
專用積體電路(ASIC)、現場可編程閘陣列(FPGA)、數位信號處理器(DSP)、網路處理器或之類。處理器802係配置以執行用於進行上述機制之操作和功能的處理邏輯826。
電腦系統800可能更包括網路介面卡808。電腦系統800也可能包括使用者介面810(例如,視頻顯示單元、液晶顯示器(LCD)或陰極射線管(CRT))、字母數字輸入裝置812(例如,鍵盤)、游標控制裝置814(例如,滑鼠)、及信號產生裝置816(例如,整合揚聲器)。電腦系統800可能進一步包括周邊裝置836(例如,無線或有線通訊裝置、記憶體裝置、儲存裝置、音頻處理裝置、視頻處理裝置、等等)。電腦系統800可能進一步包括能夠執行對服務之輸入請求並反應於上述輸入請求之實現而發射執行資料的硬體為基API登錄框架834。
輔助記憶體818可能包括於其上儲存實作上述之任一或更多方法或功能之一或多個指令集(例如,軟體822)的機器可讀儲存媒體(或更具體來說是機器可存取儲存媒體)831。軟體822在由電腦系統800執行它們期間可能也完全地或至少部分地存在於主記憶體804內及/或在處理器802內,主記憶體804和處理器802也構成機器可讀儲存媒體。軟體822可能進一步經由網路介面卡808透過網路820來傳送或接收。機器可讀儲存媒體831可能包括暫態或非暫態機器可讀儲存媒體。
各種實施例的一部分可能提供作為電腦程式
產品,其可能包括具有儲存於其上之電腦程式指令的機器可讀媒體,其可能用以編程電腦(或其他電子裝置)以進行根據實施例的程序。機器可讀媒體可能包括但不限於軟碟、光碟、壓縮光碟唯讀記憶體(CD-ROM)、及磁光碟、ROM、RAM、可抹除可編程唯讀記憶體(EPROM)、電子EPROM(EEPROM)、磁或光學卡、快閃記憶體、或適用於儲存電子指令之其他類型的媒體/機器可讀媒體。
圖中所示之技術能使用所儲存的碼和資料來實作並執行在一或多個電子裝置(例如,終端台、網路元件)上。上述電子裝置使用電腦可讀媒體(例如,非暫態電腦可讀儲存媒體(例如,磁碟;光碟;隨機存取記憶體;唯讀記憶體;快閃記憶體裝置;相變記憶體)及暫態電腦可讀傳輸媒體(例如,電子、光學、聲音或其他形式的傳播信號-如載波、紅外線信號、數位信號))儲存並傳遞(內部地及/或透過網路與其他電子裝置)碼和資料。此外,上述電子裝置通常包括一組一或多個處理器,耦接至一或多個其他元件,如一或多個儲存裝置(非暫態機器可讀儲存媒體)、使用者輸入/輸出裝置(例如,鍵盤、觸控螢幕、及/或顯示器)、及網路連線。這組處理器與其他元件的耦接通常透過一或多個匯流排和橋接器(也稱為匯流排控制器)。因此,給定電子裝置的儲存裝置通常儲存碼及/或資料用於在此電子裝置之此組一或多個處理器上執行。當然,可能使用軟體、韌體、及/或硬
體之不同組合來實作實施例的一或多個部分。
實施例可能實作成以下之任何或組合:使用母板互連的一或多個微晶片或積體電路、硬線邏輯、由記憶體裝置儲存並由微處理器執行的軟體、韌體、專用積體電路(ASIC)、及/或現場可編程閘陣列(FPGA)。藉由舉例,「邏輯」之詞可能包括軟體或硬體及/或軟體及硬體之組合。
此外,實施例可能被下載為電腦程式產品,其中程式可能經由通訊鏈路(例如,數據機及/或網路連線)藉由在載波或其他傳播媒介中具體化及/或由載波或其他傳播媒介調變的一或更多資料信號來從遠端電腦(例如,伺服器)傳送至請求電腦(例如,客戶端)。
提及「一個實施例」、「一實施例」、「示範實施例」、「各種實施例」等表示如此描述的實施例可能包括特定特徵、結構、或特性,但不一定每個實施例都包括該特定特徵、結構、或特性。此外,一些實施例可能具有或沒有針對其他實施例所述之一些、所有特徵。
在下面的說明和申請專利範圍中,可能使用「耦接」之詞及其衍生詞。「耦接」係用以表示彼此合作或互動的兩個或更多元件,但它們可能或可能不具有在其之間的中間實體或電元件。
如申請專利範圍中所使用,除非另有指明,否則使用「第一」、「第二」、「第三」等之序數形容詞來描述共同物件僅指示所提及之類似物件的不同實例,且
不打算意味著如此描述的元件必須以特定順序(無論是時間上、空間上)、分級、或任何其他方式。
下列條文及/或實例涉及進一步的實施例或實例。實例中的具體說明可能在一或多個實施例中的任何地方使用。不同實施例或實例的各種特徵可能不同地與所包括之一些特徵和排除之其他特徵結合以適應各種不同的應用。實例可能包括根據本文所述之實施例和實例之主題,例如方法、用於執行方法之動作的工具、包括指令的至少一機器可讀媒體,當指令被機器執行時使機器執行方法之動作、或用於促進混合通訊的裝置或系統。
一些實施例關於實例1,其包括雲端計算叢集的計算節點,包含節點代理器,用以從雲端控制器接收虛擬機器及服務級目標計算消耗指標(SLO)參數,且將SLO參數映射至在計算節點的資源、及Per VM監控器,用以監控虛擬機器的效能,其中節點代理器從Per VM監控器接收效能資料且基於效能資料來動態地調整虛擬機器的效能。
實例2包括實例1之主題,其中Per VM監控器使用硬體事件以使用per執行緒識別符來監控虛擬機器活動。
圖示及以上說明提出實施例的實例。那些熟晰本領域之技藝者將了解一或更多所述之元件可能被適當地結合成單一功能元件。另外,某些元件可能被分成多個功能元件。來自一個實施例的元件可能被加入至另一實施
例。例如,本文所述之程序順序可能改變且並不限於本文所述之方式。此外,任何流程圖中的動作不需要以所顯示之順序實作;也不一定需要進行所有動作。而且,不相依於其他動作的那些動作可能與其他動作平行進行。實施例之範圍並不限於這些具體實例。無論在說明書中是否明確提出,許多變化(如結構、尺寸、及材料使用的差異)係可能的。實施例之範圍至少與下面的申請專利範圍所給定的一樣廣泛。
100‧‧‧系統
102‧‧‧計算節點
104‧‧‧雲端控制器
106‧‧‧雲端狀態資料庫
108‧‧‧網路
120‧‧‧處理器
122‧‧‧核心
126‧‧‧非核心
124‧‧‧效能監控單元
128‧‧‧PMU
130‧‧‧快取記憶體
132‧‧‧輸入/輸出子系統
134‧‧‧記憶體
136‧‧‧資料儲存裝置
138‧‧‧通訊電路
140‧‧‧處理器
142‧‧‧I/O子系統
144‧‧‧記憶體
146‧‧‧資料儲存裝置
148‧‧‧通訊電路
Claims (29)
- 一種雲端計算叢集的計算節點,包含:一或更多處理器,用以實作虛擬機器;一節點代理器,以從一雲端控制器接收該虛擬機器及一服務級目標計算消耗指標(SLO)參數,且將該SLO參數映射至在該計算節點的資源,其中該SLO參數包含該一或更多處理器之效能特性;及一Per虛擬機器(Per VM)監控器,以監控該虛擬機器的效能,其中該節點代理器從該Per VM監控器接收效能資料且基於該效能資料來動態地調整該虛擬機器的效能。
- 如申請專利範圍第1項所述之計算節點,其中該Per VM監控器使用硬體事件以使用一per執行緒識別符來監控該虛擬機器活動。
- 如申請專利範圍第1項所述之計算節點,其中該節點代理器基於該SLO參數來判斷該虛擬機器效能是否低於一預期虛擬機器效能。
- 如申請專利範圍第3項所述之計算節點,其中該節點代理器一旦判斷該虛擬機器效能低於該預期虛擬機器效能便進行一校正動作。
- 如申請專利範圍第4項所述之計算節點,其中該節點代理器計算資源配置的改變量來修改該計算節點上的資源配置以達到預期虛擬機器效能。
- 如申請專利範圍第5項所述之計算節點,其中該節 點代理器進行一開機動作修改資源配置。
- 如申請專利範圍第5項所述之計算節點,其中該節點代理器進行一節流動作修改資源配置。
- 如申請專利範圍第5項所述之計算節點,其中該節點代理器進行一遷移動作修改資源配置。
- 如申請專利範圍第1項所述之計算節點,其中該節點代理器進行一公平超量配置程序以配置在該虛擬機器及額外虛擬機器之間的計算節點資源。
- 如申請專利範圍第9項所述之計算節點,其中該超量配置程序包含邏輯分割包括在該計算節點中之每個CPU核心的中央處理單元(CPU)資源。
- 如申請專利範圍第9項所述之計算節點,其中該超量配置程序包含建立包括在該計算節點中之每個CPU接口的中央處理單元(CPU)之池。
- 如申請專利範圍第1項所述之計算節點,其中將該SLO參數映射至在該計算節點的資源包含將該SLO參數轉譯成計算時間、處理器頻率、快取、記憶體頻寬、磁碟頻寬、網路頻寬及記憶體大小之至少一者。
- 一種用於管理在計算節點上之虛擬機器效能的方法,包含:從一雲端控制器接收一虛擬機器及一服務級目標計算消耗指標(SLO)參數,其中該SLO參數包含在該計算節點上之一或更多處理器之效能特性;將該SLO參數映射至在該計算節點的資源; 監控該虛擬機器的利用及效能;及基於監控的效能資料來動態地調整該虛擬機器的效能。
- 如申請專利範圍第13項所述之方法,其中監控該虛擬機器的效能包含:基於該SLO參數來判斷該虛擬機器效能是否低於一預期虛擬機器效能;及一旦判斷該虛擬機器效能低於該預期虛擬機器效能便進行一校正動作。
- 如申請專利範圍第14項所述之方法,更包含計算資源配置的改變量來修改該計算節點上的資源配置以達到預期虛擬機器效能。
- 如申請專利範圍第15項所述之方法,其中該節點代理器進行開機、節流及遷移動作之其一者以修改資源配置。
- 如申請專利範圍第13項所述之方法,更包含進行一公平超量配置程序以配置在該虛擬機器及額外虛擬機器之間的計算節點資源。
- 如申請專利範圍第17項所述之方法,其中該超量配置程序包含邏輯分割包括在該計算節點中之每個CPU核心的中央處理單元(CPU)資源。
- 如申請專利範圍第17項所述之方法,其中該超量配置程序包含建立包括在該計算節點中之每個CPU接口的中央處理單元(CPU)之池。
- 一種雲端計算系統,包含:一雲端控制器,包含:一服務計算單元(SCU),以基於處理器效能特性來定義一或多個服務級目標計算消耗指標(SLO),其中該SLO參數包含在計算節點上之一或更多處理器之效能特性;一使用者介面,以根據該一或多個SLO之第一者來產生一請求以具體例證說明一用以操作之虛擬機器;一計算服務模組,以接收該請求、識別資源需求及根據該資源需求產生該虛擬機器;及一排程器,以基於該資源需求來識別且排程在一計算節點上的該虛擬機器;及一計算節點,包含:一節點代理器,以從該雲端控制器接收該虛擬機器及該SLO參數,且將該SLO參數映射至在該計算節點的資源;及一Per虛擬機器(Per VM)監控器,以監控該虛擬機器的效能,其中該節點代理器從該Per VM監控器接收效能資料且基於該效能資料來動態地調整該虛擬機器的效能。
- 如申請專利範圍第20項所述之系統,其中該節點代理器基於該SLO參數來判斷該虛擬機器效能是否低於一預期虛擬機器效能,且一旦判斷該虛擬機器效能低於該預期虛擬機器效能便進行一校正動作。
- 如申請專利範圍第21項所述之系統,其中該節點代理器計算資源配置的改變量來修改該計算節點上的資源配置以達到預期虛擬機器效能。
- 如申請專利範圍第22項所述之系統,其中該節點代理器進行開機、節流及遷移動作之其一者以修改資源配置。
- 如申請專利範圍第23項所述之系統,其中該節點代理器進行一公平超量配置程序以配置在該虛擬機器及額外虛擬機器之間的計算節點資源。
- 一種具有指令的電腦可讀媒體,當該指令由處理器執行時使該處理器進行:從一雲端控制器接收一虛擬機器及一服務級目標計算消耗指標(SLO)參數,其中該SLO參數包含在該計算節點上之一或更多處理器之效能特性;將該SLO參數映射至在該計算節點的資源;監控該虛擬機器的利用及效能;及基於監控的效能資料來動態地調整該虛擬機器的效能。
- 如申請專利範圍第25項所述之電腦可讀媒體,其中監控該虛擬機器的效能包含:基於該SLO參數來判斷該虛擬機器效能是否低於一預期虛擬機器效能;及一旦判斷該虛擬機器效能低於該預期虛擬機器效能便進行一校正動作。
- 如申請專利範圍第26項所述之電腦可讀媒體,具有指令,當該指令由一處理器執行時更使該處理器用以進行計算資源配置的改變量來修改該計算節點上的資源配置以達到預期虛擬機器效能。
- 如申請專利範圍第27項所述之電腦可讀媒體,其中該節點代理器進行開機、節流及遷移動作之其一者以修改資源配置。
- 如申請專利範圍第25項所述之電腦可讀媒體,具有指令,當該指令由一處理器執行時更使該處理器用以進行一公平超量配置程序以配置在該虛擬機器及額外虛擬機器之間的計算節點資源。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/578,629 US9921866B2 (en) | 2014-12-22 | 2014-12-22 | CPU overprovisioning and cloud compute workload scheduling mechanism |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201642130A TW201642130A (zh) | 2016-12-01 |
TWI591542B true TWI591542B (zh) | 2017-07-11 |
Family
ID=56129495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104138150A TWI591542B (zh) | 2014-12-22 | 2015-11-18 | 雲端計算節點、方法與系統及電腦可讀媒體 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9921866B2 (zh) |
EP (1) | EP3238054A4 (zh) |
CN (1) | CN107003887B (zh) |
TW (1) | TWI591542B (zh) |
WO (1) | WO2016105683A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI838000B (zh) * | 2022-12-09 | 2024-04-01 | 財團法人工業技術研究院 | 雲端資源配置系統、裝置及方法 |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9959188B1 (en) * | 2015-07-02 | 2018-05-01 | Amazon Technologies, Inc. | Managing processor usage of a physical host configured for hosting computing instances |
CN106326002B (zh) | 2015-07-10 | 2020-10-20 | 阿里巴巴集团控股有限公司 | 资源调度方法、装置及设备 |
US10387209B2 (en) * | 2015-09-28 | 2019-08-20 | International Business Machines Corporation | Dynamic transparent provisioning of resources for application specific resources |
US10496282B1 (en) * | 2016-03-16 | 2019-12-03 | EMC IP Holding Company LLC | Adaptive port management to meet service level objectives using reinforcement learning |
GB2549773B (en) * | 2016-04-28 | 2018-05-16 | Metaswitch Networks Ltd | Configuring host devices |
US10152357B1 (en) * | 2016-05-02 | 2018-12-11 | EMC IP Holding Company LLC | Monitoring application workloads scheduled on heterogeneous elements of information technology infrastructure |
US10042673B1 (en) * | 2016-05-02 | 2018-08-07 | EMC IP Holdings Company LLC | Enhanced application request based scheduling on heterogeneous elements of information technology infrastructure |
US10102033B2 (en) * | 2016-05-26 | 2018-10-16 | International Business Machines Corporation | Method and system for performance ticket reduction |
US11132220B2 (en) * | 2016-09-27 | 2021-09-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Process scheduling |
US10382352B2 (en) * | 2016-11-15 | 2019-08-13 | Vmware Inc. | Distributed resource scheduling based on network utilization |
JP6809165B2 (ja) * | 2016-11-25 | 2021-01-06 | 富士通株式会社 | 情報処理装置、分析プログラム及び分析方法 |
US20180173547A1 (en) * | 2016-12-20 | 2018-06-21 | Intel Corporation | Pinning of virtual network function (vnf) deployments using hardware metrics |
US10601681B2 (en) * | 2017-03-20 | 2020-03-24 | International Business Machines Corporation | Optimizing streaming graph topology based on service level agreement |
US10956193B2 (en) * | 2017-03-31 | 2021-03-23 | Microsoft Technology Licensing, Llc | Hypervisor virtual processor execution with extra-hypervisor scheduling |
US20180300259A1 (en) * | 2017-04-12 | 2018-10-18 | Quanta Computer Inc. | Local disks erasing mechanism for pooled physical resources |
US10884807B2 (en) | 2017-04-12 | 2021-01-05 | Cisco Technology, Inc. | Serverless computing and task scheduling |
US10257033B2 (en) | 2017-04-12 | 2019-04-09 | Cisco Technology, Inc. | Virtualized network functions and service chaining in serverless computing infrastructure |
US20190020969A1 (en) * | 2017-07-11 | 2019-01-17 | At&T Intellectual Property I, L.P. | Systems and methods for provision of virtual mobile devices in a network environment |
US10489195B2 (en) | 2017-07-20 | 2019-11-26 | Cisco Technology, Inc. | FPGA acceleration for serverless computing |
US20190065333A1 (en) * | 2017-08-23 | 2019-02-28 | Unisys Corporation | Computing systems and methods with functionalities of performance monitoring of the underlying infrastructure in large emulated system |
CN109729113B (zh) * | 2017-10-27 | 2021-03-23 | 伊姆西Ip控股有限责任公司 | 管理专用处理资源的方法、服务器系统和计算机程序产品 |
US11206193B2 (en) * | 2017-11-09 | 2021-12-21 | Futurewei Technologies, Inc. | Method and system for provisioning resources in cloud computing |
US10771584B2 (en) | 2017-11-30 | 2020-09-08 | Cisco Technology, Inc. | Provisioning using pre-fetched data in serverless computing environments |
US10620959B2 (en) | 2017-12-01 | 2020-04-14 | International Business Machines Corporation | Optimized multi-processor instruction scheduler |
US10700954B2 (en) * | 2017-12-20 | 2020-06-30 | Advanced Micro Devices, Inc. | Scheduling memory bandwidth based on quality of service floorbackground |
US10417035B2 (en) | 2017-12-20 | 2019-09-17 | At&T Intellectual Property I, L.P. | Virtual redundancy for active-standby cloud applications |
US10810044B2 (en) * | 2018-01-04 | 2020-10-20 | Hewlett Packard Enterprise Development Lp | Enhanced cache memory allocation based on virtual node resources |
US10430227B2 (en) * | 2018-01-09 | 2019-10-01 | Microsoft Technology Licensing, Llc | Fast instantiation of virtual machines in distributed computing systems |
US10664323B2 (en) | 2018-03-07 | 2020-05-26 | Microsoft Technology Licensing, Llc | Live migration of virtual machines in distributed computing systems |
US10678444B2 (en) | 2018-04-02 | 2020-06-09 | Cisco Technology, Inc. | Optimizing serverless computing using a distributed computing framework |
US11609784B2 (en) | 2018-04-18 | 2023-03-21 | Intel Corporation | Method for distributing a computational process, workload distribution device and system for distributing a computational process |
US11494212B2 (en) * | 2018-09-27 | 2022-11-08 | Intel Corporation | Technologies for adaptive platform resource assignment |
JP6957431B2 (ja) * | 2018-09-27 | 2021-11-02 | 株式会社日立製作所 | Hci環境でのvm/コンテナおよびボリューム配置決定方法及びストレージシステム |
US10831543B2 (en) * | 2018-11-16 | 2020-11-10 | International Business Machines Corporation | Contention-aware resource provisioning in heterogeneous processors |
CN111399970B (zh) * | 2019-01-02 | 2023-04-07 | 中国移动通信有限公司研究院 | 一种预留资源管理方法、装置和存储介质 |
US11030009B2 (en) | 2019-03-28 | 2021-06-08 | Atlassian Pty Ltd. | Systems and methods for automatically scaling compute resources based on demand |
US11126537B2 (en) * | 2019-05-02 | 2021-09-21 | Microsoft Technology Licensing, Llc | Coprocessor-based logging for time travel debugging |
CN112486663A (zh) * | 2019-09-12 | 2021-03-12 | 阿里巴巴集团控股有限公司 | 资源使用状态的评估方法和装置、电子设备以及计算机可读存储介质 |
CN111124687B (zh) * | 2019-12-30 | 2022-04-22 | 浪潮电子信息产业股份有限公司 | 一种cpu资源预留方法、装置及其相关设备 |
CN111338802B (zh) * | 2020-02-29 | 2022-08-09 | 苏州浪潮智能科技有限公司 | 一种优化大数据集群性能的方法、系统、设备及介质 |
US11307902B1 (en) * | 2020-09-30 | 2022-04-19 | Kyndryl, Inc. | Preventing deployment failures of information technology workloads |
US11989591B2 (en) | 2020-09-30 | 2024-05-21 | Advanced Micro Devices, Inc. | Dynamically configurable overprovisioned microprocessor |
WO2022133690A1 (en) * | 2020-12-21 | 2022-06-30 | Intel Corporation | Efficient resource allocation for service level compliance |
CN112286645B (zh) * | 2020-12-29 | 2021-03-23 | 北京泽塔云科技股份有限公司 | 一种gpu资源池调度系统及方法 |
US20220283866A1 (en) * | 2021-03-03 | 2022-09-08 | Liqid Inc. | Job target aliasing in disaggregated computing systems |
US11797447B2 (en) | 2021-03-17 | 2023-10-24 | Hewlett Packard Enterprise Development Lp | Efficient caching and data access to a remote data lake in a large scale data processing environment |
US20230040310A1 (en) * | 2021-08-03 | 2023-02-09 | Apple Inc. | Cpu cluster shared resource management |
CN115225714A (zh) * | 2022-06-06 | 2022-10-21 | 阿里巴巴(中国)有限公司 | 云服务的资源处理方法和系统 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8291411B2 (en) * | 2007-05-21 | 2012-10-16 | International Business Machines Corporation | Dynamic placement of virtual machines for managing violations of service level agreements (SLAs) |
US8332859B2 (en) * | 2007-05-31 | 2012-12-11 | International Business Machines Corporation | Intelligent buyer's agent usage for allocation of service level characteristics |
US9459984B2 (en) * | 2007-10-29 | 2016-10-04 | Intel Corporation | Method and systems for external performance monitoring for virtualized environments |
US8307362B1 (en) | 2009-12-18 | 2012-11-06 | Emc Corporation | Resource allocation in a virtualized environment |
US8433802B2 (en) * | 2010-01-26 | 2013-04-30 | International Business Machines Corporation | System and method for fair and economical resource partitioning using virtual hypervisor |
US8424000B2 (en) | 2010-07-30 | 2013-04-16 | Symantec Corporation | Providing application high availability in highly-available virtual machine environments |
DE102012217202B4 (de) * | 2011-10-12 | 2020-06-18 | International Business Machines Corporation | Verfahren und System zum Optimieren des Platzierens virtueller Maschinen in Cloud-Computing-Umgebungen |
US9571406B2 (en) * | 2011-10-25 | 2017-02-14 | Vmware, Inc. | Network congestion management based on communication delay |
US8745216B2 (en) | 2011-11-17 | 2014-06-03 | Infosys Limited | Systems and methods for monitoring and controlling a service level agreement |
US20130185729A1 (en) | 2012-01-13 | 2013-07-18 | Rutgers, The State University Of New Jersey | Accelerating resource allocation in virtualized environments using workload classes and/or workload signatures |
US20140130055A1 (en) | 2012-02-14 | 2014-05-08 | Aloke Guha | Systems and methods for provisioning of storage for virtualized applications |
WO2013160944A1 (en) * | 2012-04-25 | 2013-10-31 | Hitachi, Ltd. | Provisioning of resources like cpu or virtual machines or virtualized storage in a cloud computing environment |
CN102681889B (zh) * | 2012-04-27 | 2015-01-07 | 电子科技大学 | 一种云计算开放平台的调度方法 |
US20130339424A1 (en) | 2012-06-15 | 2013-12-19 | Infosys Limited | Deriving a service level agreement for an application hosted on a cloud platform |
TW201407476A (zh) | 2012-08-06 | 2014-02-16 | Hon Hai Prec Ind Co Ltd | 虛擬機資源配置系統及方法 |
US8935704B2 (en) * | 2012-08-10 | 2015-01-13 | International Business Machines Corporation | Resource management using reliable and efficient delivery of application performance information in a cloud computing system |
US8949848B2 (en) * | 2012-08-20 | 2015-02-03 | International Business Machines Corporation | Reducing usage of resource utilized by a virtual machine whose resource utilization is adversely affecting neighboring virtual machines |
CN104956325A (zh) * | 2013-01-31 | 2015-09-30 | 惠普发展公司,有限责任合伙企业 | 物理资源分配 |
CN104065745A (zh) * | 2014-07-07 | 2014-09-24 | 电子科技大学 | 云计算动态资源调度系统和方法 |
-
2014
- 2014-12-22 US US14/578,629 patent/US9921866B2/en active Active
-
2015
- 2015-11-12 EP EP15873909.4A patent/EP3238054A4/en active Pending
- 2015-11-12 WO PCT/US2015/060409 patent/WO2016105683A1/en active Application Filing
- 2015-11-12 CN CN201580063596.2A patent/CN107003887B/zh active Active
- 2015-11-18 TW TW104138150A patent/TWI591542B/zh not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI838000B (zh) * | 2022-12-09 | 2024-04-01 | 財團法人工業技術研究院 | 雲端資源配置系統、裝置及方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201642130A (zh) | 2016-12-01 |
US9921866B2 (en) | 2018-03-20 |
CN107003887B (zh) | 2021-04-23 |
US20160179560A1 (en) | 2016-06-23 |
WO2016105683A1 (en) | 2016-06-30 |
EP3238054A1 (en) | 2017-11-01 |
CN107003887A (zh) | 2017-08-01 |
EP3238054A4 (en) | 2018-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI591542B (zh) | 雲端計算節點、方法與系統及電腦可讀媒體 | |
US11068946B2 (en) | NUMA-based client placement | |
US10212098B2 (en) | Performance-driven resource management in a distributed computer system | |
US9183016B2 (en) | Adaptive task scheduling of Hadoop in a virtualized environment | |
US10298512B2 (en) | System and method for performing resource allocation for a host computer cluster | |
EP3087503B1 (en) | Cloud compute scheduling using a heuristic contention model | |
US9727355B2 (en) | Virtual Hadoop manager | |
US9412075B2 (en) | Automated scaling of multi-tier applications using reinforced learning | |
US9379995B2 (en) | Resource allocation diagnosis on distributed computer systems based on resource hierarchy | |
US9268394B2 (en) | Virtualized application power budgeting | |
Tembey et al. | Merlin: Application-and platform-aware resource allocation in consolidated server systems | |
US20080301473A1 (en) | Method and system for hypervisor based power management | |
US10203991B2 (en) | Dynamic resource allocation with forecasting in virtualized environments | |
US9686207B2 (en) | Application service level objective aware demand estimation | |
Nam et al. | Workload-aware resource management for software-defined compute | |
Gureya | Resource Allocation for Data-Intensive Services in the Cloud | |
Patel et al. | Existing and Relevant Methodologies for Energy Efficient Cloud Data centers | |
Zhang | CoolCloud: Improving energy efficiency in virtualized data centers | |
Heo et al. | IOCost: Block Input–Output Control for Containers in Datacenters | |
Rattihalli | Towards Dynamic Resource Estimation and Correction for Improving Utilization in Apache Mesos and Kubernetes Cloud Environments | |
Liu | Chameleon: Virtual Machine Migration Supporting Cascading Overload Management in Cloud | |
Rodríguez-Haro et al. | Description of a Low level Virtual-Resource QoS CPU manager | |
JP2010224772A (ja) | 計算機資源調停システム、計算機資源調停方法および計算機資源調停用プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |