動(dòng)態(tài)改善邏輯分區(qū)的存儲器親和性的制作方法
【專利摘要】在包括多個(gè)節(jié)點(diǎn)和多個(gè)邏輯分區(qū)的計(jì)算機(jī)系統(tǒng)中,動(dòng)態(tài)分區(qū)管理器計(jì)算當(dāng)前存儲器親和性和潛在存儲器親和性,以幫助確定在節(jié)點(diǎn)之間的資源的重新分配是否可以改善邏輯分區(qū)或者計(jì)算機(jī)系統(tǒng)的存儲器親和性。如果可以,則執(zhí)行資源的重新分配,從而改善邏輯分區(qū)或者用于計(jì)算機(jī)系統(tǒng)的存儲器親和性。根據(jù)包括多個(gè)初級域和多個(gè)二級域的硬件域?qū)哟谓Y(jié)構(gòu)相對于資源的物理布局計(jì)算存儲器親和性。
【專利說明】動(dòng)態(tài)改善邏輯分區(qū)的存儲器親和性
【技術(shù)領(lǐng)域】
[0001]本公開總體涉及計(jì)算機(jī)系統(tǒng),并且更具體地涉及包括在多個(gè)節(jié)點(diǎn)上的多個(gè)邏輯分區(qū)的計(jì)算機(jī)系統(tǒng)。
【背景技術(shù)】
[0002]在特定的計(jì)算機(jī)系統(tǒng)上的硬件和軟件的結(jié)合定義了計(jì)算環(huán)境。因此,不同的硬件平臺和不同的操作系統(tǒng)提供不同的計(jì)算環(huán)境。近年來,工程師們已經(jīng)認(rèn)識到,可以通過將計(jì)算機(jī)系統(tǒng)資源邏輯分區(qū)都不同的計(jì)算環(huán)境,而在同一物理計(jì)算機(jī)系統(tǒng)上提供不同的計(jì)算環(huán)境。由IBM開發(fā)的iSeries的計(jì)算機(jī)系統(tǒng)是支持邏輯分區(qū)的計(jì)算機(jī)系統(tǒng)的示例。如果需要在iSeries的計(jì)算機(jī)系統(tǒng)上進(jìn)行邏輯分區(qū),則安裝允許在同一平臺上定義不同計(jì)算環(huán)境的分區(qū)管理器代碼(在IBM的術(shù)語中稱為“管理程序(hypervisor)”)。一旦安裝了分區(qū)管理器,則可以創(chuàng)建定義不同的計(jì)算環(huán)境的邏輯分區(qū)。分區(qū)管理器管理邏輯分區(qū),以確保它們可以在計(jì)算機(jī)系統(tǒng)中共享需要的資源,同時(shí)維持由邏輯分區(qū)所定義的分離的計(jì)算環(huán)境。
[0003]邏輯分區(qū)領(lǐng)域中更多最近的發(fā)展支持在正在運(yùn)行邏輯分區(qū)時(shí)的動(dòng)態(tài)的資源分配,并且支持跨計(jì)算機(jī)系統(tǒng)中的多個(gè)節(jié)點(diǎn)定義邏輯分區(qū)。在邏輯分區(qū)正在運(yùn)行時(shí)動(dòng)態(tài)分配資源的能力導(dǎo)致與邏輯分區(qū)中的存儲器親和性(memory affinity)相關(guān)的問題。此處定義邏輯分區(qū)的存儲器親和性是每個(gè)節(jié)點(diǎn)的邏輯分區(qū)的存儲器與每個(gè)節(jié)點(diǎn)的邏輯分區(qū)的處理器的比率。當(dāng)邏輯分區(qū)可以跨節(jié)點(diǎn)時(shí),存儲器親和力是重要的,因?yàn)樵诠?jié)點(diǎn)中的邏輯分區(qū)中,由處理器對相同節(jié)點(diǎn)上的存儲器進(jìn)行的訪問比對在不同節(jié)點(diǎn)上的存儲器進(jìn)行的訪問快很多。出于這個(gè)原因,我們希望確保在節(jié)點(diǎn)上的每個(gè)處理器具有相應(yīng)的存儲器。如果這是可能的,則可以實(shí)現(xiàn)完美的存儲器親和性。
[0004]當(dāng)首次啟動(dòng)邏輯分區(qū)時(shí),分區(qū)管理器可以創(chuàng)建具有完美的存儲器親和性的邏輯分區(qū),這意味著每個(gè)處理器在每個(gè)節(jié)點(diǎn)上都具有相應(yīng)數(shù)量的存儲器,或者如果不能夠?qū)崿F(xiàn)完美的存儲器親和性,也可以對所有的邏輯分區(qū)具有相似的存儲器親和性。但是請注意,資源的動(dòng)態(tài)重新分配可能會對一個(gè)或多個(gè)邏輯分區(qū)的存儲器親和性產(chǎn)生負(fù)面影響。隨著時(shí)間的推移,有可能邏輯分區(qū)的存儲器親和性會降低到對邏輯分區(qū)的性能產(chǎn)生嚴(yán)重的負(fù)面影響的點(diǎn)。
【發(fā)明內(nèi)容】
[0005]在包括多個(gè)節(jié)點(diǎn)和多個(gè)邏輯分區(qū)的計(jì)算機(jī)系統(tǒng)中,動(dòng)態(tài)分區(qū)管理器計(jì)算當(dāng)前存儲器親和性和潛在存儲器親和性,以幫助確定在節(jié)點(diǎn)之間的資源的重新分配是否可以提高邏輯分區(qū)或計(jì)算機(jī)系統(tǒng)的存儲器親和性。如果可以,則進(jìn)行資源的重新分配,從而改善邏輯分區(qū)或計(jì)算機(jī)系統(tǒng)的存儲器親和性。根據(jù)包括多個(gè)初級域(primary domain)和多個(gè)二級域(secondary domain)的硬件域?qū)哟谓Y(jié)構(gòu),相對于資源的物理布局來計(jì)算存儲器親和性。
[0006]如在附圖中示出的,從以下更具體的描述中,上述的和其它的特征和優(yōu)點(diǎn)將變得顯而易見?!緦@綀D】
【附圖說明】
[0007]將結(jié)合附圖來對本發(fā)明進(jìn)行描述,在附圖中,相同的符號表示相同的元件,并且其中:
[0008]圖1是包括存儲器親和性計(jì)算機(jī)構(gòu)的計(jì)算機(jī)系統(tǒng)的框圖;
[0009]圖2是包括八個(gè)初級域和四個(gè)二級域的示例性計(jì)算機(jī)系統(tǒng)的框圖;
[0010]圖3是示出在圖2的示例性計(jì)算機(jī)系統(tǒng)上定義的四個(gè)邏輯分區(qū)中的每一個(gè)的分布類型(spread type)的表;
[0011]圖4是示出處理器和存儲器向四個(gè)邏輯分區(qū)的分配的表;
[0012]圖5是對于圖2的計(jì)算機(jī)系統(tǒng)計(jì)算存儲器親和性的方法的流程圖;
[0013]圖6是用于確定每個(gè)邏輯分區(qū)的分布類型的方法的流程圖;
[0014]圖7是用于定義每個(gè)邏輯分區(qū)的分布類型的方法的流程圖;
[0015]圖8是示出示例性的初級域和二級域的表;
[0016]圖9是通過將每個(gè)邏輯分區(qū)的存儲器親和性相加來計(jì)算機(jī)系統(tǒng)的存儲器親和性的公式;
[0017]圖10是基于存儲器親和性來分析在邏輯分區(qū)內(nèi)的資源的潛在重新分配的方法的流程圖;
[0018]圖11是基于存儲器親和性、邏輯分區(qū)存儲器代理(agent)與動(dòng)態(tài)分區(qū)管理器相互作用以實(shí)現(xiàn)邏輯分區(qū)內(nèi)的資源的重新分配的方法的流程圖;
[0019]圖12是基于計(jì)算機(jī)系統(tǒng)的存儲器親和性、用于分析在計(jì)算機(jī)系統(tǒng)中的資源的潛在重新分配的方法的流程圖;以及
[0020]圖13是示出處理器和存儲器向四個(gè)邏輯分區(qū)的潛在分配的表。
【具體實(shí)施方式】
[0021]此處的權(quán)利要求和公開提供了一種方法,用來計(jì)算當(dāng)前存儲器親和性和潛在存儲器親和性、以幫助確定在節(jié)點(diǎn)之間的資源的重新分配是否可以改善邏輯分區(qū)或計(jì)算機(jī)系統(tǒng)的存儲器親和性。如果可以,則進(jìn)行資源的重新分配,從而改善邏輯分區(qū)或計(jì)算機(jī)系統(tǒng)的存儲器親和性。根據(jù)包括多個(gè)初級域和多個(gè)二級域的硬件域?qū)哟谓Y(jié)構(gòu),相對于資源的物理布局來計(jì)算存儲器親和性。
[0022]參考圖1,計(jì)算機(jī)系統(tǒng)100是包括動(dòng)態(tài)分區(qū)管理器的服務(wù)器計(jì)算機(jī)系統(tǒng)的一個(gè)適當(dāng)?shù)膶?shí)施方式。服務(wù)器計(jì)算機(jī)系統(tǒng)100是IBM的iSeries計(jì)算機(jī)系統(tǒng)。然而,本領(lǐng)域技術(shù)人員將會理解,此處的公開同樣適用于任何計(jì)算機(jī)系統(tǒng),而不論計(jì)算機(jī)系統(tǒng)是復(fù)雜的多用戶計(jì)算裝置、是單用戶工作站、還是嵌入式控制系統(tǒng)。如圖1所示,計(jì)算機(jī)系統(tǒng)100包括一個(gè)或多個(gè)處理器110、主存儲器120、大容量存儲設(shè)備接口 130、顯示器接口 140、以及網(wǎng)絡(luò)接口 150。這些系統(tǒng)組件通過使用系統(tǒng)總線160而互連。大容量存儲設(shè)備接口 130被用于將諸如本地大容量存儲設(shè)備155的大容量存儲設(shè)備連接到計(jì)算機(jī)系統(tǒng)100。一個(gè)特定類型的本地大容量存儲設(shè)備155是可讀可寫的CD-RW驅(qū)動(dòng)器,其可以向CD-RW195存儲數(shù)據(jù)和從中讀取數(shù)據(jù)。
[0023]主存儲器120優(yōu)選地包含數(shù)據(jù)121、動(dòng)態(tài)分區(qū)管理器122、以及多個(gè)邏輯分區(qū)124,在圖1中被顯示為124A、…、124N。數(shù)據(jù)121表示作為輸入到計(jì)算機(jī)系統(tǒng)100的任何程序中或從計(jì)算機(jī)系統(tǒng)100的任何程序中輸出的任何數(shù)據(jù)。動(dòng)態(tài)分區(qū)管理器122是復(fù)雜的程序,其包含低層次的代碼來管理計(jì)算機(jī)系統(tǒng)100的資源。這些資源中的一些是處理器110、主存儲器120、大容量存儲設(shè)備接口 130、顯示器接口 140、網(wǎng)絡(luò)接口 150、和系統(tǒng)總線160。動(dòng)態(tài)分區(qū)管理器122包括存儲器親和性計(jì)算機(jī)構(gòu)123,其允許動(dòng)態(tài)分區(qū)管理器122基于當(dāng)前的資源分配來計(jì)算當(dāng)前存儲器親和性,以及基于建議的資源的重新分配來計(jì)算潛在存儲器親和性。動(dòng)態(tài)分區(qū)管理器可以對于任何單獨(dú)的邏輯分區(qū)計(jì)算當(dāng)前存儲器親和性和潛在存儲器親和性,并且其也可以對于整個(gè)計(jì)算機(jī)系統(tǒng)計(jì)算當(dāng)前存儲器親和性和潛在存儲器親和性。動(dòng)態(tài)分區(qū)管理器122優(yōu)選地創(chuàng)建N個(gè)邏輯分區(qū)124。每個(gè)邏輯分區(qū)124優(yōu)選地包括相應(yīng)的操作系統(tǒng),在圖1中被示出為操作系統(tǒng)125A至125N,以及相應(yīng)的存儲器親和性代理,在圖1中被示出為存儲器親和性代理126A至126N。
[0024]每個(gè)邏輯分區(qū)中的操作系統(tǒng)是多任務(wù)操作系統(tǒng),例如,i5/0S、AIX、或Linux,但是,本領(lǐng)域技術(shù)人員將會理解,本發(fā)明的精神和范圍并不局限于任何一個(gè)操作系統(tǒng)。任何合適的操作系統(tǒng)都可以使用。在每個(gè)邏輯分區(qū)中的操作系統(tǒng)可以與在其他邏輯分區(qū)中的操作系統(tǒng)相同,或者可以是完全不同的操作系統(tǒng)。因此,一個(gè)邏輯分區(qū)可以運(yùn)行i5/0S操作系統(tǒng),而不同的邏輯分區(qū)可以運(yùn)行可能是不同的版本或具有不同的環(huán)境設(shè)置(例如,時(shí)區(qū)或語言)的i5/0S的另一個(gè)實(shí)例。每個(gè)邏輯分區(qū)中的操作系統(tǒng)甚至可以不同于i5/0S,如果其與硬件兼容(如AIX或Linux)。以這種方式,邏輯分區(qū)可以在相同的物理計(jì)算機(jī)系統(tǒng)上提供完全不同的計(jì)算環(huán)境。
[0025]邏輯分區(qū)125A-125N在圖1中示出,其駐留在主存儲器120內(nèi)。然而,本領(lǐng)域技術(shù)人員將認(rèn)識到,邏輯分區(qū)是包括除存儲器以外的資源的邏輯構(gòu)造。邏輯分區(qū)通常指定存儲器的一部分,以及處理器能力和其他系統(tǒng)資源的分配。因此,一個(gè)邏輯分區(qū)可以被定義為包括兩個(gè)處理器和存儲器120的一部分。另一個(gè)邏輯分區(qū)則可以被定義為包括三個(gè)其他處理器和存儲器120的不同部分。圖1中示出的邏輯分區(qū)用于象征性地代表邏輯分區(qū),其可以包括在計(jì)算機(jī)系統(tǒng)100內(nèi)的存`儲器120外部的系統(tǒng)資源。還要注意,動(dòng)態(tài)分區(qū)管理器122優(yōu)選地駐留在與邏輯分區(qū)分離的存儲器和硬件中,并且包括邏輯分區(qū)不能直接使用的設(shè)施和機(jī)構(gòu)。
[0026]計(jì)算機(jī)系統(tǒng)100利用公知的虛擬尋址機(jī)制,其允許計(jì)算機(jī)系統(tǒng)100的程序就如同其只訪問一個(gè)大的連續(xù)的地址空間而不是訪問多個(gè)較小的存儲實(shí)體一樣運(yùn)行例如主存儲器120和本地大容量存儲設(shè)備155。因此,雖然數(shù)據(jù)121、動(dòng)態(tài)分區(qū)管理器122和邏輯分區(qū)124A、…、124N被示出為駐留在主存儲器120中,但是本領(lǐng)域技術(shù)人員將認(rèn)識到,這些項(xiàng)不一定都必須同時(shí)完全包含在主存儲器120中。還應(yīng)當(dāng)注意,此處所用的術(shù)語“存儲器”總體地指計(jì)算機(jī)系統(tǒng)100的整個(gè)虛擬存儲器,并且可以包括耦合到計(jì)算機(jī)系統(tǒng)100的其它計(jì)算機(jī)系統(tǒng)的虛擬存儲器。
[0027]處理器110可以由一個(gè)或多個(gè)微處理器和/或集成電路構(gòu)造而成。處理器110執(zhí)行存儲在主存儲器120中的程序指令。主存儲器120存儲處理器110可訪問的程序和數(shù)據(jù)。當(dāng)計(jì)算機(jī)系統(tǒng)100啟動(dòng)時(shí),處理器110最初執(zhí)行構(gòu)成動(dòng)態(tài)分區(qū)管理器122的程序指令。處理器110還在各個(gè)邏輯分區(qū)124A、…、124N中執(zhí)行操作系統(tǒng)125A、…、125N。
[0028]雖然計(jì)算機(jī)系統(tǒng)100被示出為僅僅包含單個(gè)處理器和單個(gè)系統(tǒng)總線,但是本領(lǐng)域技術(shù)人員將會理解,動(dòng)態(tài)分區(qū)管理器可以使用具有多個(gè)處理器和/或多個(gè)總線的計(jì)算機(jī)系統(tǒng)來實(shí)施。此外,每個(gè)所使用的接口優(yōu)選地包括分離的、完全編程的微處理器,其被用于分擔(dān)(off load)來自處理器110的計(jì)算密集型處理。然而,本領(lǐng)域技術(shù)人員將會理解,這些功能也可以使用I/O適配器來執(zhí)行。
[0029]顯示器接口 140被用來將一個(gè)或多個(gè)顯示器165直接連接到計(jì)算機(jī)系統(tǒng)100。這些顯示器165可以是非智能(B卩,不智能)終端或完全可編程的工作站,用于向系統(tǒng)管理員和用戶提供與計(jì)算機(jī)系統(tǒng)100溝通的能力。然而注意,雖然提供顯示器接口 140來支持與一個(gè)或多個(gè)顯示器165的通信,但是計(jì)算機(jī)系統(tǒng)100并不一定必須需要顯示器165,因?yàn)榕c用戶和其他處理的所有需要的相互作用可以經(jīng)由網(wǎng)絡(luò)接口 150發(fā)生。
[0030]網(wǎng)絡(luò)接口 150被用于經(jīng)由網(wǎng)絡(luò)170將計(jì)算機(jī)系統(tǒng)100連接到其他計(jì)算機(jī)系統(tǒng)或工作站175。網(wǎng)絡(luò)接口 150廣泛地表示用于將電子設(shè)備互聯(lián)的任何適當(dāng)?shù)姆绞?,無論網(wǎng)絡(luò)170是否包括當(dāng)今的模擬和/或數(shù)字技術(shù)或者經(jīng)由未來的某些網(wǎng)絡(luò)機(jī)構(gòu)。網(wǎng)絡(luò)接口 150優(yōu)選地包括允許在網(wǎng)絡(luò)170上的通信的硬件和軟件的組合。網(wǎng)絡(luò)接口 150中的軟件優(yōu)選地包括使用合適的網(wǎng)絡(luò)協(xié)議、經(jīng)由網(wǎng)絡(luò)170來管理與其他計(jì)算機(jī)系統(tǒng)175的通信的通信管理器??梢允褂迷S多不同的網(wǎng)絡(luò)協(xié)議來實(shí)現(xiàn)網(wǎng)絡(luò)。這些協(xié)議是專用的計(jì)算機(jī)程序,其允許計(jì)算機(jī)通過網(wǎng)絡(luò)進(jìn)行通信。TCP/IP (傳輸控制協(xié)議/網(wǎng)際協(xié)議)是合適的網(wǎng)絡(luò)協(xié)議的示例,其可以通過網(wǎng)絡(luò)接口 150內(nèi)的通信管理器來使用。
[0031]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本發(fā)明的各個(gè)方面還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
[0032]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號介質(zhì)或者計(jì)算機(jī)可讀存儲介質(zhì)。計(jì)算機(jī)可讀存儲介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0033]計(jì)算機(jī)可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計(jì)算機(jī)可讀的信號介質(zhì)還可以是計(jì)算機(jī)可讀存儲介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0034]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0035]可以以一種或多種程序設(shè)計(jì)語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計(jì)語言一諸如“C”語言或類似的程序設(shè)計(jì)語言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0036]下面將參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計(jì)算機(jī)程序指令在通過計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。
[0037]也可以把這些計(jì)算機(jī)程序指令存儲在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的指令的制造品(article of manufacture)0
[0038]計(jì)算機(jī)程序指令也可以被加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備上,以使得在計(jì)算機(jī)、其他可編程裝置或者其他設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或者其他編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖和/或框圖的一個(gè)或多個(gè)塊中指定的功能/動(dòng)作的處理。
[0039]參考圖2,例如,計(jì)算機(jī)系統(tǒng)200被示出為包括可分配到不同的邏輯分區(qū)的存儲器和硬件的計(jì)算機(jī)系統(tǒng)。根據(jù)硬件的物理邊界,硬件被分為硬件域?qū)哟谓Y(jié)構(gòu)。對于該特定的示例,我們假設(shè)初級域?qū)?yīng)于芯片,而二級域?qū)?yīng)于節(jié)點(diǎn)或抽屜(drawer)。然而,注意到,初級域和二級域的概念可以被應(yīng)用到任何合適的硬件層次結(jié)構(gòu),不論是當(dāng)前已知的或在將來開發(fā)的。計(jì)算機(jī)系統(tǒng)200包括四個(gè)二級域202A、202B、202C、和202D。每個(gè)二級域包括兩個(gè)初級域。因此,二級域202A包括初級域204A和204B ;二級域202B包括初級域204C和204D ;二級域202C包括初級域204E和204F ;并且二級域202D包括初級域204G及204H。每個(gè)初級域具有物理處理器和物理存儲器。因此,初級域204A包括四個(gè)處理器210A和16千兆字節(jié)(GB)的存儲器220A ;初級域204B包括四個(gè)處理器210B和16GB的存儲器220B ;初級域204C包含兩個(gè)處理器210C和16GB的存儲器220C;初級域204D包括兩個(gè)處理器210D和48GB的存儲器220D ;初級域204E包括八個(gè)處理器210E和32GB的存儲器220E ;初級域204F包括八個(gè)處理器210F和32GB的存儲器220F ;初級域204G包括兩個(gè)處理器210G和32GB的存儲器220G ;以及初級域204H包括兩個(gè)處理器2IOH和64GB的存儲器220H。利用圖2中所示的該樣本計(jì)算機(jī)系統(tǒng)200的硬件結(jié)構(gòu),圖1中的動(dòng)態(tài)分區(qū)管理器122將資源分配給需要被創(chuàng)建的邏輯分區(qū)。
[0040]圖3示出了對于沿著左側(cè)的列的邏輯分區(qū)ID (LP ID)1_4給四個(gè)邏輯分區(qū)指定它們各自的處理器和存儲器需要的表。圖3中的表指定了 “分布類型”,其是邏輯分區(qū)可適合于計(jì)算機(jī)系統(tǒng)200中何處的指示。在圖3中示出了四個(gè)特定的分布類型,包括:包含在初級域中(CiP);包含在二級域中(CiS);跨二級域分布(SaS);以及其適合的任何地點(diǎn)(WiF)。這些分布類型定義對于特定的邏輯分區(qū)如何分配資源以及如何計(jì)算存儲器親和性。在下面將對分布類型進(jìn)行更詳細(xì)的討論。
[0041]圖4中的表表示對于在圖3中所示的四個(gè)邏輯分區(qū)中的每一個(gè)的,在初級域和二級域中的處理器和存儲器的分配。圖4中的域編號參考圖2中的初級域,而二級域是在兩個(gè)基礎(chǔ)域的每個(gè)組合中的右邊的小的編號。因此,二級域0(節(jié)點(diǎn)/抽屜O)包括初級域O和I(芯片O和芯片I) ;二級域I包括初級域2和3 (芯片2和芯片3) ; 二級域2包括初級域4和5 (芯片4和芯片5);以及二級域3包括初級域6和7 (芯片6和芯片7)。用于解釋圖4中的每個(gè)分區(qū)的分配的方式是如果編號在單元中的上部的行,則其用于上面的域;并且如果編號是在單元中的下部的行,則其用于下面的域。因此,對于LP ID2,第一單元中的3用于初級域0,因?yàn)槠涮幱趩卧纳喜俊τ贚P ID3,第一單元中的8用于初級域4,因?yàn)槠涮幱趩卧南虏?。對于LP ID3,在第三個(gè)單元中存在兩個(gè)編號,在上部的3和在下部的I。這表示在初級域I中有3個(gè)處理器并且在初級域5中有I個(gè)處理器。
[0042]參考圖5,方法500示出了用于計(jì)算機(jī)系統(tǒng)的計(jì)算存儲器親和性的步驟。首先,相對于計(jì)算機(jī)系統(tǒng)的物理硬件布局來對每個(gè)邏輯分區(qū)進(jìn)行評分(步驟510)。可應(yīng)用一個(gè)或多個(gè)調(diào)整(步驟520)。在步驟520中可以應(yīng)用的調(diào)整的示例包括頁表調(diào)整、權(quán)重調(diào)整和共享存儲器調(diào)整。例如,頁表調(diào)整可以包括基于硬件頁表或者虛擬頁表的位置減少存儲器親和性的因子。例如,權(quán)重調(diào)整可包括根據(jù)在邏輯分區(qū)中使用的資源的數(shù)量除以計(jì)算機(jī)系統(tǒng)中的資源的總數(shù)量來減少存儲器親和性的因子。例如,共享存儲器調(diào)整可以包括當(dāng)存儲器與其他邏輯分區(qū)共享時(shí)減小存儲器親和性的因子。例如,共享存儲器調(diào)整可以考慮共享池(shared pool)的大小、如果總數(shù)大于池的大小則考慮共享存儲器配置彼此之間的相對百分比、以及考慮共享的存儲器池的實(shí)際使用百分比等。用于全部邏輯分區(qū)的調(diào)整的評分然后被求和(步驟530),以獲得例如圖2的計(jì)算機(jī)系統(tǒng)200的計(jì)算機(jī)系統(tǒng)的存儲器親和性評分。然后方法500完成。
[0043]圖5的步驟510相對于物理硬件布局來對每個(gè)邏輯分區(qū)進(jìn)行評分。這可以使用概念“分布類型”來實(shí)現(xiàn)。參照圖6,方法600分析邏輯分區(qū)的資源(步驟610)并確定邏輯分區(qū)的分布類型(步驟620)。當(dāng)存在多個(gè)邏輯分區(qū)(步驟630=是)時(shí),方法600循環(huán)回到步驟610并繼續(xù),直到?jīng)]有更多的邏輯分區(qū)(步驟630=否)。然后方法600完成。
[0044]基于邏輯分區(qū)在理論上可以適合于計(jì)算機(jī)系統(tǒng)的何處,對于每個(gè)邏輯分區(qū)確定分布類型。分布類型的概念是強(qiáng)大的,因?yàn)槠浞从沉擞布驅(qū)哟谓Y(jié)構(gòu)中的實(shí)際硬件邊界。當(dāng)邏輯分區(qū)可以被分配在單個(gè)初級域(例如,芯片)時(shí),邏輯分區(qū)將具有非常高的存儲器親和性。相對于在各個(gè)域中提供的資源的、邏輯分區(qū)所需要的資源的數(shù)量將確定邏輯分區(qū)的分布類型。參照圖7,方法700示出一種用于定義邏輯分區(qū)的分布類型的合適方式。將邏輯分區(qū)排序到優(yōu)先級列表中(步驟710)。優(yōu)先級列表按優(yōu)先級的順序列出邏輯分區(qū),從而最高優(yōu)先級邏輯分區(qū)被首先考慮,次最高優(yōu)先級邏輯分區(qū)下一個(gè)考慮等??梢源_定任何優(yōu)選的資源布置(步驟712)。例如,出于某些具體原因,例如期望的維護(hù)、安全性等,系統(tǒng)管理員可以指定特定邏輯分區(qū)的資源被分配在特定域中。然后,從優(yōu)先級列表中選擇最高優(yōu)先級邏輯分區(qū)(步驟714)。如果邏輯分區(qū)將適合于在初級域中(步驟720=是),則分布類型是包含在初級域中(CiP)(步驟722)。如果邏輯分區(qū)不適合于初級域中(步驟720=否),但將適合于在二級域中(步驟730=是),則分布類型是包含在二級域中(CiS)(步驟732)。如果邏輯分區(qū)不適合于在二級域中(步驟730=否),但將適合于以合理的平衡方式跨多個(gè)二級域(步驟740=是),則分布類型是跨二級域分布(SaS)(步驟742)。如果邏輯分區(qū)不適合于以合理的平衡方式跨多個(gè)二級域(步驟740=否),但是將適合于隨機(jī)地在各個(gè)域上(步驟750=是),則分布類型是其適合的任何地點(diǎn)(WiF)(步驟752)。如果邏輯分區(qū)不適合于隨機(jī)地在各個(gè)域上(步驟750=否),但適合于跨集群中的多個(gè)系統(tǒng)(步驟760=是),則分布類型是跨集群分布(SaC)(步驟762)。如果邏輯分區(qū)不適合于跨集群中的多個(gè)系統(tǒng)(步驟760=否),則邏輯分區(qū)不能被分配到計(jì)算機(jī)中以包括系統(tǒng)集群,因此,邏輯分區(qū)分配失敗(步驟780)。當(dāng)優(yōu)先級列表中存在更多的邏輯分區(qū)要處理時(shí)(步驟790=是),方法700循環(huán)回到步驟714并繼續(xù),直到在優(yōu)先級列表中沒有更多的邏輯分區(qū)要處理(步驟790=否)。然后方法700完成。通過創(chuàng)建邏輯分區(qū)的優(yōu)先列表,然后從最高優(yōu)先級到最低優(yōu)先級確定分布類型,較高優(yōu)先級的邏輯分區(qū)具有較大的可能性有較好的存儲器親和性。
[0045]圖8示出了顯示在硬件域?qū)哟谓Y(jié)構(gòu)中的兩個(gè)可能的硬件層的表。對于在圖2中所示的特定示例,初級域?qū)?yīng)于芯片,而二級域?qū)?yīng)于節(jié)點(diǎn)或抽屜。當(dāng)然,其他硬件域?qū)哟谓Y(jié)構(gòu)也是可能的,而且也都落入在此處的說明書和權(quán)利要求的范圍內(nèi)。
[0046]參考圖9,示出了用于對例如在圖2中所示的計(jì)算機(jī)系統(tǒng)200的計(jì)算機(jī)系統(tǒng)計(jì)算存儲器親和性的表達(dá)式。注意,圖9中的表達(dá)式是圖5中的方法500中所示的步驟的一個(gè)特定的實(shí)施方式。計(jì)算機(jī)系統(tǒng)的存儲器親和性通過以下表達(dá)式來表示:
【權(quán)利要求】
1.一種計(jì)算機(jī)系統(tǒng),包括: 在多個(gè)節(jié)點(diǎn)上定義的多個(gè)邏輯分區(qū);以及 動(dòng)態(tài)分區(qū)管理器,其管理該多個(gè)節(jié)點(diǎn)上的多個(gè)資源向多個(gè)邏輯分區(qū)的分配,所述動(dòng)態(tài)分區(qū)管理器包括存儲器親和性計(jì)算機(jī)構(gòu),其基于計(jì)算機(jī)系統(tǒng)中的硬件域?qū)哟谓Y(jié)構(gòu)來計(jì)算所選擇的邏輯分區(qū)的存儲器親和性,所述硬件域?qū)哟谓Y(jié)構(gòu)包括至少一個(gè)初級域以及至少一個(gè)二級域,其中,所述存儲器親和性計(jì)算機(jī)構(gòu)通過基于與硬件域?qū)哟谓Y(jié)構(gòu)相關(guān)的分布類型針對每個(gè)邏輯分區(qū)計(jì)算原始評分、將原始評分乘以至少一個(gè)調(diào)整因子來生成調(diào)整的評分、以及將多個(gè)邏輯分區(qū)的調(diào)整的評分相加,來計(jì)算計(jì)算機(jī)系統(tǒng)的存儲器親和性。
2.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其中,所述至少一個(gè)調(diào)整因子包括: 基于至少一個(gè)頁表相對于所選擇的邏輯分區(qū)中的其他資源的位置的頁表調(diào)整因子;以及 基于所選擇的邏輯分區(qū)中的資源與計(jì)算機(jī)系統(tǒng)中的所有資源相比較的百分?jǐn)?shù)的權(quán)重調(diào)整因子。
3.根據(jù)權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其中,所述至少一個(gè)調(diào)整因子還包括: 當(dāng)在所選擇的邏輯分區(qū)中的存儲器與至少一個(gè)其他邏輯分區(qū)共享時(shí)的共享存儲器分區(qū)因子。
4.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),還包括: 在所選擇的邏輯分區(qū) 中的存儲器親和性代理,所述存儲器親和性代理基于所選擇的邏輯分區(qū)中的資源的當(dāng)前分配從所述存儲器親和性計(jì)算機(jī)構(gòu)確定所選擇的邏輯分區(qū)的當(dāng)前存儲器親和性,所述存儲器親和性代理基于所選擇的邏輯分區(qū)中的資源的建議的重新分配從存儲器親和性計(jì)算機(jī)構(gòu)中確定所選擇的邏輯分區(qū)的潛在存儲器親和性,其中,當(dāng)潛在存儲器親和性大于當(dāng)前存儲器親和性時(shí),所述動(dòng)態(tài)分區(qū)管理器重新分配所選擇的邏輯分區(qū)中的資源。
5.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其中,所述至少一個(gè)初級域的每一個(gè)包括集成電路,并且所述至少一個(gè)二級域的每一個(gè)包括節(jié)點(diǎn)。
6.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其中,所述分布類型包括: 包含在初級域中; 包含在二級域中; 跨二級域分布; 跨初級域和二級域其適合的任何地點(diǎn);以及 跨集群分布。
7.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其中,所述存儲器親和性機(jī)構(gòu)使用下面的等式計(jì)算計(jì)算機(jī)系統(tǒng)的存儲器親和性: 存儲器親和性=
8.—種由至少一個(gè)處理器執(zhí)行的計(jì)算機(jī)實(shí)施的方法,所述方法用于基于計(jì)算機(jī)系統(tǒng)中的硬件域?qū)哟谓Y(jié)構(gòu)計(jì)算多個(gè)邏輯分區(qū)的存儲器親和性,所述方法包括以下步驟: (A)選擇多個(gè)邏輯分區(qū)中的一個(gè); (B)通過執(zhí)行以下步驟,基于計(jì)算機(jī)系統(tǒng)中的硬件域?qū)哟谓Y(jié)構(gòu)來計(jì)算所選擇的邏輯分區(qū)的存儲器親和性,其中,所述硬件域?qū)哟谓Y(jié)構(gòu)包括至少一個(gè)初級域和至少一個(gè)二級域: (C)基于與所述硬件域?qū)哟谓Y(jié)構(gòu)相關(guān)的分布類型來計(jì)算針對所選擇的邏輯分區(qū)的原始評分; (D)將所述原始評分乘以至少一個(gè)調(diào)整因子,以產(chǎn)生調(diào)整的評分; (E)對于多個(gè)邏輯分區(qū)中的每一個(gè),重復(fù)步驟(A)至(D);以及 (F)將針對多個(gè)邏輯分區(qū)的調(diào)整的評分相加。
9.根據(jù)權(quán)利要求8所述的方法,其中,所述至少一個(gè)調(diào)整因子包括: 基于至少一個(gè)頁表相對于所選擇的邏輯分區(qū)中的其他資源的位置的頁表調(diào)整因子;以及 基于所選擇的邏輯分區(qū)中的資源與計(jì)算機(jī)系統(tǒng)中的所有資源相比較的百分?jǐn)?shù)的權(quán)重調(diào)整因子。
10.根據(jù)權(quán)利要求9所述的方法,其中,所述至少一個(gè)調(diào)整因子還包括: 當(dāng)在所選擇的邏輯分區(qū)中的存儲器與至少一個(gè)其他邏輯分區(qū)共享時(shí)的共享存儲器分區(qū)因子。
11.根據(jù)權(quán)利要求8所述的方法,還包括步驟: 基于在所選擇的邏輯分區(qū)中的資源的當(dāng)前分配從存儲器親和性計(jì)算機(jī)構(gòu)確定所選擇的邏輯分區(qū)的當(dāng)前存儲器親和性; 基于在所選擇的邏輯分區(qū)中的資源的建議的重新分配從存儲器親和性計(jì)算機(jī)構(gòu)確定用于所選擇的邏輯分區(qū)的潛在存儲器親和性;以及 當(dāng)潛在存儲器親和性大于當(dāng)前存儲器親和性時(shí),重新分配所選擇的邏輯分區(qū)中的資源。
12.根據(jù)權(quán)利要求8所述的方法,其中,所述至少一個(gè)初級域的每一個(gè)包括集成電路,并且所述至少一個(gè)二級域的每一個(gè)包括節(jié)點(diǎn)。
13.根據(jù)權(quán)利要求8所述的方法,其中,所述分布類型包括: 包含在初級域中; 包含在二級域中; 跨二級域分布; 跨初級域和二級域其適合的任何地點(diǎn);以及 跨集群分布。
14.根據(jù)權(quán)利要求8所述的方法,其中,所述存儲器親和性機(jī)構(gòu)使用下面的等式計(jì)算計(jì)算機(jī)系統(tǒng)的存儲器親和性:存儲器親和性=
15.一種由至少一個(gè)處理器執(zhí)行的計(jì)算機(jī)實(shí)施的方法,所述方法用于計(jì)算包括多個(gè)邏輯分區(qū)的計(jì)算機(jī)系統(tǒng)的存儲器親和性,所述方法包括以下步驟: 使用下面的等式計(jì)算存儲器親和性: 存儲器親和性=
16.根據(jù)權(quán)利要求15所述的方法,還包括步驟: 基于計(jì)算機(jī)系統(tǒng)中的資源的當(dāng)前分配確定計(jì)算機(jī)系統(tǒng)的當(dāng)前存儲器親和性; 基于計(jì)算機(jī)系統(tǒng)中的資源的建議的重新分配確定計(jì)算機(jī)系統(tǒng)的潛在存儲器親和性;以及 當(dāng)潛在存儲器親和性大于當(dāng)前存儲器親和性時(shí),重新分配計(jì)算機(jī)系統(tǒng)中的資源。
17.根據(jù)權(quán)利要求15所述的方法,其中,所述分布類型包括: 包含在初級域中; 包含在二級域中; 跨二級域分布; 跨初級域和二級域其適合的任何地點(diǎn);以及 跨集群分布。
【文檔編號】G06F9/50GK103810047SQ201310571745
【公開日】2014年5月21日 申請日期:2013年11月13日 優(yōu)先權(quán)日:2012年11月13日
【發(fā)明者】D.C.伯克斯特蘭德, P.J.赫爾曼, W.B.奧倫, E.C.普羅瑟 申請人:國際商業(yè)機(jī)器公司