用于在綜合工作負載環(huán)境中實現(xiàn)最佳性能的系統(tǒng)和方法
【技術領域】
[0001] 本申請通常涉及改進的數(shù)據(jù)處理裝置和方法,更具體地,涉及用于在綜合工作環(huán) 境中實現(xiàn)最佳性能的閉環(huán)反饋機制。
【背景技術】
[0002] 現(xiàn)代計算設備是建立在多處理核體系結構上。某些計算設備提供多線程核,其中, 線程是可與其它線程并行執(zhí)行的指令序列。采用多線程核,如何在核中設計線程存在復雜 性。在某些體系結構中,諸如紐約州阿蒙克市的國際商業(yè)機器(IBM)公司的Power?體系 結構,其使用對稱多線程(SMT)技術,諸如SMT4 (4個同時執(zhí)行的線程)、SMT2 (2個同時執(zhí)行 的線程)、或任何數(shù)量的SMT線程(即SMTn),如果這些線程并發(fā)運行,則這些線程在核中具 有相同的容量和能力。然而,如果只有一個線程在運行,則該線程在性能上獲得提高,因為 該線程具有更大的容量,即,與當所有SMT線程都在核中運行時它所擁有的相比,它可使用 更多的計算機設備資源。
[0003] 當物理核被虛擬化并在整個核中或者通過時分虛擬在多個虛擬處理器之間共享 時,如何在核中設計線程的復雜性增加。在虛擬環(huán)境中,多個虛擬處理器可分布在多個虛擬 機(VM)或邏輯分區(qū)(LPAR)上,其中每個LPAR主要孤立地運行。應當知道,LPAR可包括一 個或多個VM,而每個VM可包括一個或多個虛擬處理器,這些虛擬處理器使用計算設備的一 個或多個處理器和物理資源運行。
[0004] 在LPAR/VM上運行的操作系統(tǒng),諸如來自IBM公司的高級交互執(zhí)行(AIX)操縱系 統(tǒng),采用智能調度,均衡硬件能力的知識。在這種情況下,知道SMT線程取決于其它線程在 核上的運行狀態(tài)而獲得不同的容量/能力,AIX調度程序在工作負載沒有在LPAR/VM中的 所有虛擬處理器的每個硬件線程上運行的任務時,調度LPAR/VM中每個虛擬處理器的主要 (第一)線程以獲得最佳性能。
[0005] 在虛擬環(huán)境中,LPAR、VM或虛擬處理器可以在系統(tǒng)上過量供應容量,例如,每個 LPAR/VM可依據(jù)虛擬處理器請求系統(tǒng)中的所有資源,如果它們可用。因此,在這個過量供應 配置中,例如在現(xiàn)代體系結構中多達10X的虛擬處理器可處于運行中,物理核的容量和資 源在這些虛擬處理器上進行時間切分(如果過量供應和所有虛擬處理器被每個LPAR中的 客機(guest)操作系統(tǒng)分派)。AIX操作系統(tǒng)即使在每個虛擬處理器中只使用一個線程, 也會調度每個LPAR中的所有虛擬處理器上的工作,導致物理核在大量虛擬處理器之間進 行時間切分的情況。也就是說,并不是向單個虛擬處理器分派與該單個虛擬處理器相關聯(lián) 的多個線程,或者也不是LPAR中的所有具有線程的虛擬處理器擴展到虛擬處理器的子集 上,AIX操作系統(tǒng)將調度每個LPAR中的所有虛擬處理器上的工作,并將線程擴展到所有虛 擬處理器上,其中針對由這些虛擬處理器共享的物理資源執(zhí)行時間切分,物理資源例如是 物理核、存儲器、緩存器等。時間切分增加了線程之間的上下文切換,并導致緩存器的顛簸 (thrashing),導致相對低的性能。
【發(fā)明內容】
[0006] 在一個示例性實施例中,提供一種在包括至少一個物理處理器和存儲器的數(shù)據(jù)處 理系統(tǒng)中用于在虛擬機(VM)環(huán)境中動態(tài)調整軟件線程到硬件線程的分配的方法。該方法 包括由在數(shù)據(jù)處理系統(tǒng)中執(zhí)行的虛擬機管理器(VMM)從在數(shù)據(jù)處理系統(tǒng)中執(zhí)行的多個VM 接收工作負載優(yōu)先級的指示。該指示表明在多個VM中的每個VM上執(zhí)行的工作負載的優(yōu)先 級。該方法還包括由VMM向多個VM中的每個VM提供物理資源使用的指示。該物理資源使 用的指示是在數(shù)據(jù)處理系統(tǒng)中執(zhí)行的多個VM中的所有VM上的物理資源使用的指示。該方 法還包括由多個VM中的每個VM基于物理資源使用的指示和在該VM上執(zhí)行的工作負載的 優(yōu)先級來自動調整對應的軟件線程到硬件線程的分配,以達到在多個VM中的所有VM上的 硬件線程的使用平衡。
[0007] 在其它示例性實施例中,提供一種計算機程序產品,其包括具有計算機可讀程序 的計算機可用或可讀介質。當計算機可讀程序在計算設備上執(zhí)行時,使得計算設備執(zhí)行以 上參照方法的示例性實施例概括的操作的各個操作及其組合。
[0008] 在再一個示例性實施例中,提供一種系統(tǒng)/裝置。該系統(tǒng)/裝置可包括一個或多 個處理器以及連接到一個或多個處理器的存儲器。存儲器可包括指令,其在由一個或多個 處理器執(zhí)行時使得一個或多個處理器執(zhí)行以上參照方法的示例性實施例概括的操作的各 個操作及其組合。
[0009] 本發(fā)明的這些和其它特點及優(yōu)點將在以下對本發(fā)明的示例性實施例的詳細說明 中描述,或者將在參照對本發(fā)明的示例性實施例的詳細說明后對本領域技術人員變得顯而 易見。
【附圖說明】
[0010] 通過參考以下示例性實施例的詳細說明并結合附圖閱讀,本發(fā)明以及優(yōu)選使用模 式和其它目標和優(yōu)點將得到很好理解,其中:
[0011] 圖1是說明根據(jù)示例性情形的一個示例性實施例的主要操作單元的示例性框圖;
[0012] 圖2是其中可實現(xiàn)示例性實施例的各方面的計算設備的示例性框圖;
[0013] 圖3是概括根據(jù)一個示例性實施例的虛擬管理機制的示例性操作的流程圖;
[0014] 圖4是概括根據(jù)一個示例性實施例的虛擬機的客機操作系統(tǒng)的示例性操作的流 程圖。
【具體實施方式】
[0015] 示例性實施例提供了用于在綜合工作負載環(huán)境中實現(xiàn)最佳性能的閉環(huán)反饋機 制。該閉環(huán)反饋機制緩解針對在多個線程上的物理資源的時間切分遍布在系統(tǒng)的邏輯分區(qū) (LPAR)或虛擬機(VM)的所有虛擬處理器上而發(fā)生的緩存器顛簸。閉環(huán)反饋機制提供了一 種通信路徑,管理程序或其它虛擬機或LPAR管理機制可通過它向LPAR或VM的客機操作系 統(tǒng)通知在系統(tǒng)級別的資源使用或資源可用性,諸如在LPAR的其它VM中的資源可用性,以便 修改客機操作系統(tǒng)的線程調度行為?;趤碜怨芾沓绦虻脑摲答?,客機操作系統(tǒng)的線程調 度可以折疊(減少)或展開(增加)由LPAR或VM正在使用的虛擬處理器的數(shù)量,從而根據(jù) 如由管理程序識別的資源的可用性來減少或增加與虛擬處理器相關聯(lián)的時間切分。因此, 在多線程環(huán)境中更有效地利用線程是可能的。
[0016] 如上所述,為了在多個虛擬機上的虛擬環(huán)境中均衡多線程計算系統(tǒng)的硬件能力, 諸如SMT使能計算系統(tǒng),示例性實施例在管理程序、主機操作系統(tǒng)或其它LPAR/VM管理機制 與客機操作系統(tǒng)(例如,諸如AIX、Linux、IBMi的操作系統(tǒng)的實例)或結合虛擬機或LPAR 執(zhí)行的其它操作系統(tǒng)之間提供閉環(huán)系統(tǒng)。為了下面的描述,假定LPAR/VM管理機制是管理 程序,客機操作系統(tǒng)是AIX操作系統(tǒng)的實例,然而,示例性實施例并不限于此。在這種情況 下,管理程序知道所有LPAR/VM的需求,而客機操作系統(tǒng)知道在該客機操作系統(tǒng)內運行的 工作負載的需求。客機操作系統(tǒng)還實現(xiàn)關于各種類型的工作負載或工作負載的特性的商業(yè) 策略,以便根據(jù)所建立的在商業(yè)策略中規(guī)定的商業(yè)優(yōu)先級來調度工作負載。例如,商業(yè)關鍵 應用,諸如數(shù)據(jù)庫,可以相對于其它工作負載(諸如旨在開發(fā)或測試工作負載的工作負載) 而被給予更高的優(yōu)先級。
[0017] 當這些工作負載在同一個計算系統(tǒng)上的虛擬機上運行時,商業(yè)策略被應用于軟件 棧和硬件,以確保在計算系統(tǒng)中的虛擬機的虛擬處理器內正確地調度線程。根據(jù)示例性實 施例,通過創(chuàng)建其中管理程序向客機操作系統(tǒng)提供反饋的閉環(huán)系統(tǒng),客機操作系統(tǒng)可以更 好地應用策略以在對應的虛擬處理器上調度線程。即,管理程序基于對計算系統(tǒng)資源的需 求,向客機操作系統(tǒng)傳遞提示以影響客機操作系統(tǒng)調度它的線程的方式。
[0018] 例如,如果對計算系統(tǒng)資源的需求在計算系統(tǒng)的虛擬機上更少,這意味著計算系 統(tǒng)的許多虛擬機處于低負載狀態(tài),因此需要較低的物理處理器容量,則管理程序可向被配 置了較低優(yōu)先級商業(yè)策略(即,執(zhí)行較低優(yōu)先級工作負載)的虛擬機的客機操作系統(tǒng)傳遞 有關過度的資源可用性的"提示"或信息。然后,這些執(zhí)行較低優(yōu)先級工作負載的客機操作 系統(tǒng)可改變它們的調度器行為以獲得額外的處理器容量。
[0019] 圖1是表示根據(jù)示例性情形的一個示例性實施例的主要操作單元的示例性框圖。 在下面的示例性情形中,其應當僅被認為是示例性實施例的操作的非限定例子,假定虛擬 機A 110正在運行具有高優(yōu)先級策略集合114的商業(yè)關鍵數(shù)據(jù)庫工作負載112,即規(guī)定工作 負載112具有比非關鍵工作負載相對高的優(yōu)先級的商業(yè)策略,并被配置了 32個虛擬處理器 116,并具有計算系統(tǒng)的24個物理處理器核的授權或保證(即使計算系統(tǒng)被完全利用,工作 負載112也保證24個物理處理器核)。虛擬處理器的配置數(shù)量表示可分配給工作負載112 的虛擬處理器的最大數(shù)量,該最大數(shù)量在計算系統(tǒng)未充分利用時達到。
[0020] 還假定虛擬機B 120正在運行與較低優(yōu)先級策略集合124相關聯(lián)的開發(fā)工作負載 122,并被配置了 20個虛擬處理器126和2個物理處理器核的授權。另外,在該例子中,假 定虛擬機C 130運行具有優(yōu)先級策略集合134的測試工作負載132,該優(yōu)先級策略集合134 比虛擬機B的低優(yōu)先級策略集合更高,但低于虛擬機A 110的高優(yōu)先級策略集合114。虛擬 機C被配置了 20個虛擬處理器136和4個物理處理器核的授權。在這個例子中,系統(tǒng)具有 32個物理處理器核140,其在三個虛擬機110、120和130之間共享。多個虛擬機110、120 和130的配置策略與管理程序150共享,以使得管理程序知道與每個虛擬機相關聯(lián)的優(yōu)先 級策略集合114、124和134,并因此知道在各個虛擬機110、120和130上運行的工作負載的 優(yōu)先級。
[0021] 在這個例子中,基于虛擬機A 110的高優(yōu)先級策略集合,虛