本公開涉及計算領域。更具體地,本公開涉及集群計算服務確保。
背景技術:
本文提供的背景描述是出于總體呈現本公開的上下文的目的。除非在本文中另有說明,否則本章節中描述的材料不是本申請中權利要求的現有技術,并且不因包括在本章節中而被認為是現有技術。
在許多現實生活計算機集群部署(例如,大數據集群)中,由于總體硬件資源短缺/稀缺或集群共享使用,在沒有任何物理或邏輯隔離的情況下可能存在多個應用任務并行運行。應用任務消耗并且甚至競爭相同的底層硬件資源的集合,例如,在計算機節點中的每個計算機節點中所采用的中央處理單元(cpu)、存儲器、以及輸入/輸出(i/o)資源。由于應用在其生命周期期間的動態需求,對應用的各種實例的資源分配可能導致資源不平衡和不令人滿意的服務級別協議,并且因此導致差的用戶體驗。
例如,用于大數據集群部署的現有資源調度解決方案(如hadoopyarn)根據請求應用的靜態資源分配配置來分配用于請求應用的資源,而不是根據請求資源的實時資源需求和使用(其在應用生命周期的各種階段期間可能是非常動態的)。靜態資源分配遠不令人滿意。一些其它解決方案提供操作系統(包括虛擬機)或計算機節點級別資源隔離,以確保感興趣的系統或應用的服務級別協議(sla)。然而,這種級別的服務確保粒度太粗糙,并且沒有解決在相同集群或者甚至相同節點內的應用之間共享資源的場景問題。
附圖說明
通過以下具體實施方式,結合附圖,實施例將容易理解。為了幫助理解本說明書,同樣的附圖標記指定同樣的結構元素。實施例在附圖的圖中通過示例的方式而非通過限制的方式示出。
圖1示出了根據各種實施例的并入有本公開的節點級服務確保技術的集群計算環境的框圖。
圖2示出了根據各種實施例的服務確保管理器主端、服務確保管理器代理、以及各種應用主端和從端之間的通信。
圖3示出了根據各種實施例的服務確保管理器代理與各種計算資源之間的通信。
圖4-5示出了根據各種實施例的用于經由節點級服務確保來確保服務級別的示例過程。
圖6示出了根據各種實施例的適于用來實踐本公開的各種方面的示例計算機系統。
圖7示出了根據各種實施例的具有用于實踐參考圖1-5描述的方法的指令的存儲介質。
具體實施方式
本文公開了與集群計算相關聯的裝置、方法、以及存儲介質。在實施例中,計算集群的服務器可以包括存儲器和輸入/輸出資源;以及一個或多個處理器,其與存儲器和輸入/輸出資源耦合,以對應用主端(master)的多個應用從端(slave)中的一個應用從端進行操作;其中,其它應用從端在其它服務器上被操作,這些其它服務器與該服務器一起作為計算集群的成員。服務器還可以包括服務確保管理器代理,其用于管理將一個或多個處理器、存儲器、以及輸入/輸出資源分配給應用從端,以確保符合從應用級服務級別協議導出的節點級服務級別協議,以便有助于近似確保符合應用級服務協議;其中,應用級服務協議指定聚合服務級別由應用主端和從端共同提供。
在以下具體實施方式中,對形成其一部分的附圖進行參考,在附圖中同樣的附圖標記始終指定同樣的部分,并且其中通過示例說明的方式示出了可以實踐的實施例。可以理解,在不脫離本公開的范圍的情況下,可以使用其它實施例,并且可以做出結構改變或邏輯改變。因此,以下具體實施方式不應被認為是限制意義的,并且實施例的范圍由所附權利要求及其等同內容限定。
在所附的說明書中公開了本公開的方面。可以在不脫離本公開的精神或范圍的情況下設計本公開的替代實施例及其等同物。應當注意,下面公開的同樣的元素在附圖中由同樣的附圖標記指示。
可以依次將各種操作描述為多個離散動作或操作,以對于理解所要求保護的主題最有幫助的方式。然而,描述的次序不應當被解釋為意味著這些操作必然是次序相關的。特別地,這些操作可以不按照呈現的次序執行。所描述的操作可以以與所描述的實施例不同的次序來執行。在附加的實施例中,可以執行各種附加的操作和/或可以省略所描述的操作。
出于本公開的目的,短語“a和/或b”表示(a)、(b)、或(a和b)。出于本公開的目的,短語“a、b、和/或c”表示(a)、(b)、(c)、(a和b)、(a和c)、(b和c)、或(a、b、和c)。
本書明書可以使用短語“在實施例中”或“在多個實施例中”,其每個均可以指代相同或不同的實施例中的一個或多個。此外,如關于本公開的實施例所使用的術語“包含”、“包括”、“具有”等是同義的。
如本文所使用的,術語“模塊”可以指代是以下的一部分,或者包括:專用集成電路(asic)、電子電路、執行一個或多個軟件程序或固件程序的處理器(共享的、專用的、或組)和/或存儲器(共享的、專用的、或組)、組合邏輯電路、和/或提供所描述的功能的其它合適的組件。
現在參考圖1,其中示出根據各種實施例的并入有本公開的節點級服務確保技術的集群計算環境的框圖被示出。如所示出的,計算群集100可以包括多個計算節點102。每個計算節點102可以包括各種硬件資源105(例如,cpu112、存儲器114、以及輸入/輸出資源115),以及在其上操作的多個應用中的每個應用的至少一個從端(例如,104a和104b)。每個應用可以包括在多個計算節點102中衍生應用從端104a/104b的應用主端103a/103b。每個應用從端104a/104b可以具有多個進程/任務110a/110b。此外,每個計算節點102可以包括服務確保管理器(sam)代理108,其用于動態地管理將cpu112、存儲器114、以及i/o115資源分配給應用從端104a/104b,以確保符合相應的節點級服務級別協議(sla)118。每個sla118可以從對應的應用級服務級別協議117導出,該應用級服務級別協議117指定聚合服務級別由各種計算節點102上的應用主端和從端103a和104a或者103b和104b共同提供。因此,在每個計算節點102處相應地符合應用從端的所導出的sla118可以有助于近似確保符合總體應用級服務協議117。
例如,托管用于處理事務的應用的計算集群可以具有每秒100000個事務的sla。在實施例中,在能力和容量方面,可以采用四(4)個基本上類似的計算節點來托管由應用主端衍生的四(4)個應用從端。可以通過確保每個計算節點符合每秒25000個事務的所導出的sla來近似地確保應用級sla。在另一示例中,在能力和容量方面,可以采用三(3)個不相似的計算節點來托管應用的三(3)個實例。可以通過確保符合每秒50000個事務、每秒35000個事務、以及每秒25000個事務(總共超過每秒100000個事務)的相應的所導出的sla來近似地確保應用級sla。每秒50000個事務、每秒35000個事務、以及每秒25000個事務的相應的所導出的sla可以大致對應于三(3)個不相似的計算節點的相對處理能力。
在實施例中,對應地位于各種計算節點102中的各種sam代理108可以由sam主端107協調。在實施例中,sam主端107可以布置在其自己的計算節點102上,或者與sam代理108共享計算節點102,如所示出的。在實施例中,sam主端107可以包括配置接口(未示出),以有助于利用應用的應用級sla117對sam主端107進行配置。在實施例中,sam主端107可以導出節點級sla118,并且將節點級sla118分別提供給布置在計算節點102上的各種sam代理108。在實施例中,sam主端107可以經由通信119將節點級sla118提供給各種sam代理108。在實施例中,sam主端107可以至少部分地基于從應用主端103a/103b獲得的計算節點使用信息來導出節點級sla118。在實施例中,sam主端107可以通過交互121獲得來自應用主端103a/103b的計算節點使用信息。
在實施例中,sam代理108可以這樣來確保符合節點級服務級別協議(sla)118:經由交互120來理解應用實例104a/104b的需求;以及經由通信122來動態地調節將cpu112、存儲器114、以及i/o115資源分配給應用從端104a/104b。在實施例中,sam108還可以這樣來確保符合節點級sla118:經由交互120來縮減一些應用從端104a/104b的資源需求,以有利于其它應用從端。在實施例中,縮減資源需求可以包括搶占一些應用從端,縮減或停止其進程/任務110a/110b。在實施例中,可以利用停止由應用主端103/103b衍生應用從端104a/104b來對停止應用從端104a/104b的進程/任務110a/110b進行協調。在實施例中,sam主端107和sam代理可以經由交互119對停止應用主端103a/103b以及停止應用從端進程/任務110a/110b進行協調。并且sam主端107可以經由交互121來停止由應用主端103a/103b衍生應用從端104a/104b。
在實施例中,sam主端和/或代理107和/或108可以以硬件實現。例如,sam主端和/或代理107和/或108可以經由專用集成電路(asic)或現場可編程電路(例如,編程有本文描述的操作邏輯的現場可編程門陣列(fpga))來實現。在替代實施例中,sam主端和/或代理107和/或108可以以硬件實現。例如,sam主端和/或代理107和/或108可以以底層處理器的匯編器指令來實現,或者以能夠被編譯到底層處理器的指令集架構中的c語言或更高級語言來實現。在其它實施例中,sam主端和代理107和/或108可以以硬件/軟件組合來實現。
cpu112可以是本領域已知的多個單核或多核處理器中的任何一個。存儲器114可以是本領域已知的多個易失性或非易失性、電、磁性、和/或光學存儲器中的任何一個。i/o資源115可以包括多個i/o設備/接口中的任何一個,例如但不限于有線或無線聯網接口、串行和/或并行i/o接口等。雖然為了易于理解僅示出了cpu112、存儲器114、以及i/o115,但是硬件資源105可以包括其它硬件資源,例如但不限于多個協處理器、圖形處理單元(gpu)、數學協處理器、數字信號處理器(dsp)等中的任何一個。
此外,除了硬件資源105之外,每個計算節點102可以包括各種固件/軟件資源,例如,各種操作系統/管理程序服務,例如但不限于調度器、存儲器管理器、進程/任務管理器等。
類似地,應用主端和從端103a/103b和104a/104b的每個集合可以是本領域已知的多個應用中的任何一個,特別地是典型地涉及簡單或復雜計算的大數據應用,其涉及其中多個應用從端在計算集群的多個服務器上被實例化和操作的大量數據。大數據應用的示例可以包括但不限于,
-消費者產品公司和零售組織的應用,其監測社交媒體(如facebook和twitter)以了解客戶行為、偏好、以及產品感知。
-制造商的應用,其監測社交網絡以在保修期失效變得公開不利之前檢測售后市場支持問題。
-金融服務公司的應用,其使用從客戶交互中挖掘的數據將其用戶劃分成經過精確調整的部分,以創建更相關且精細的報價。
-廣告和營銷機構的應用,其跟蹤社交媒體以理解對活動、促銷、以及其它廣告媒體的響應。
-保險公司的應用,其使用大數據分析來查看可以立即處理哪些家庭保險申請,以及哪些家庭保險申請需要代理人進行當面訪問驗證。
-基于網絡的企業的應用,其開發結合從客戶收集的數據的信息產品,以提供更有吸引力的建議和更成功的優惠券項目。
-體育團隊的應用,其使用數據來跟蹤門票銷售,并且甚至跟蹤團隊策略。
因此,除了sam主端和代理107和108之外,每個計算節點102可以是本領域已知的多個集群計算節點中的任何一個。將參考圖2-5進一步描述sam主端和代理107和108的構成和操作。在進一步描述sam主端和代理107和108以及本公開的其它方面之前,應當注意為了易于示例說明,圖1描繪了一個從端各自用于兩個應用(應用從端104a和應用從端104b),而本公開并不限于此。從下面的描述中可以容易地理解,經由確保在任何數量的計算節點102上操作的任何數量的應用從端104a/104b的sla118,本公開可以實踐為sam主端和代理107和108針對一個或多個應用近似地確保符合sla117。另外,在實施例中,sam主端107的功能和操作可由一個sam代理108承擔,或者在多個sam代理108或sam代理108中的全部之間共享。
現在參考圖2,其中示出根據所公開的實施例的sam主端107、sam代理108、應用主端103a/b、以及應用實例104a/104b之間的通信/交互的框圖被示出。如所示出的,應用主端和從端103a/103b和104a/104b(更具體地,一般而言應用)可以配置有這樣的接口(未示出):該接口使得sam主端107和sam代理108能夠針對各種信息對應用主端103a/103b和應用從端104a/104b進行查詢。特別地,接口可以被配置為使得sam主端107能夠針對計算機節點使用對應用主端103a/103b進行查詢,并且使得sam代理108能夠關于應用從端104a/104b的cpu、存儲器、i/o等資源需求202周期性地對應用從端104a/104b進行查詢。例如,應用從端104a/104b期望的cpu周期時間的量、存儲器空間的量、和/或i/o帶寬的量(其在操作期間可以隨時間變化,取決于各種時間點或應用的各種階段的工作負載)。
在實施例中,應用從端104a/104b(更具體地,一般而言應用)可以配置有這樣的接口(未示出):該接口使得sam代理108能夠關于各種性能度量204周期性地對應用從端104a/104b進行查詢,以獨立地確定應用從端104a/104b的資源需求。性能度量204的示例可以包括但不限于cpu周期的等待時間、高速緩存未命中的數量、引發用于存儲器交換(swap)的頻率和/或時間、i/o通道的等待時間和/或傳輸比特率等。
在實施例中,應用從端104a/104b(更具體地,一般而言應用)可以配置有這樣的接口(未示出):該接口使得sam代理108能夠動態地節制應用從端104a/104b中的一些應用從端104a/104b的資源需求(為了計算節點102上的其它應用從端的利益)。節制命令206b可以包括但不限于用于以下操作的命令:指導應用實例104a/104b搶占其子進程/任務110a/110b中的一個或多個,減少或增加子進程/任務110a/110b的數量,和/或暫停或恢復子進程/任務110a/110b中的一個或多個。
類似地,在實施例中,應用主端103a/103b(更具體地,一般而言應用)可以被配置有這樣的接口(未示出):該接口使得sam主端107能夠動態地節制206a由應用主端104a/104b中的一些應用主端衍生應用從端104a/104b(為了計算節點102上的其它應用主端和從端的利益)。
在實施例中,如較早描述的,sam主端107與代理108之間的交互119可以包括由sam主端107將節點級sla118提供給sam代理108。附加地,交互119還可以包括從sam代理108將符合性報告208給sam主端107,包括較早描述的停止進程/任務110a/110b,以使得sam主端107能夠類似地停止由受影響的應用主端103a/103b衍生應用從端104a/104b。
圖3示出了根據所公開的實施例的服務確保管理器代理與各種計算資源之間的通信。如所示出的,在實施例中,各種硬件資源105(例如,cpu112、存儲器112、以及i/o資源115)可以配置有使得sam代理108能夠針對狀態信息對各種硬件資源進行查詢302的接口(未示出)。例如,可以針對cpu112的閑置和/或忙碌時間對cpu112進行查詢,可以針對存儲器114的已分配和/或未分配的空間、時延對存儲器114進行查詢,以及可以針對i/o資源的可用性或不可用性狀態對i/o資源進行查詢。在替代實施例中,計算節點102可以包括硬件監測器314,并且sam代理108可以針對各種硬件資源狀態信息對硬件監測器314進行查詢。
在實施例中,計算節點102可以包括調度器312,并且sam代理108可以向調度器312發布分配/解除分配命令304以將各種硬件資源108(例如,cpu112、存儲器114、以及i/o資源115)分配給應用從端104a/104b或將其從應用從端104a/104b解除分配。
圖4-5示出了根據所公開的實施例的用于經由節點級服務確保來確保應用的服務級別協議的示例過程。如所示出的,該過程可以包括用于配置sam代理并與應用主端進行交互的過程400(如圖4描述的),以及用于經由節點級服務確保來確保分布在計算集群的多個計算節點上的應用從端的服務級別的過程500。
如圖4所示,過程400可以包括框402-408處的操作。這些操作可以由例如圖1-2中的較早描述的sam主端107來執行。在替代實施例中,過程400可以在具有附加操作的情況下實踐,或者在省略、組合、和/或重新排序操作中的一些操作的情況下實踐。
過程400可以在框402處開始。在框402處,可以獲得/提供應用級sla。接下來,在框404處,可以例如從應用主端獲得計算節點使用。然后在框406處,可以導出節點級sla。如較早描述的,鑒于所使用的計算節點的容量/能力,可以通過對應用級sla進行分解來導出節點級sla。
接下來,過程400可以在框406處等待來自sam代理的報告。在接收到報告后,可以做出關于應用主端的應用從端的進程/任務是否被停止的確定。如果應用主端的應用從端的進程/任務未被停止,則過程400可以返回到框406,并且如較早描述的從框406繼續進行。另一方面,應用主端的應用從端的進程/任務被停止,過程400可以進行到框408。在框408處,可以將節制命令發送到應用主端以停止由應用主端進一步衍生應用從端。因此,過程400可以進行回到框406,并從框406繼續進行。
如圖5所示,過程500可以包括框502-508處的操作。操作可以由例如圖1-3中的較早描述的sam代理108來執行。在替代實施例中,過程500可以在具有附加操作的情況下實踐,或者在省略、組合、和/或重新排序操作中的一些操作的情況下實踐。
如所示出的,過程500可以在框502處開始。在框502處,可以針對資源需求對計算機節點上的應用實例進行檢查。如較早描述的,檢查可以通過關于應用實例的需求對應用實例進行查詢來直接執行,或者通過關于各種性能度量對應用實例進行查詢并從性能度量推斷需求來間接執行。如果沒有識別出新的需求,則過程500可以停留在框502處,直到識別出新的需求為止。
在識別出需求后,過程500可以進行到框504。在框504處,可以選擇要調整的資源分配和/或要縮減的資源需求。例如,鑒于在框502中識別的需求,可以考慮對cpu資源、存儲器資源、和/或i/o資源進行分配或重新分配。在一些情況下,cpu、存儲器、以及i/o資源的分配可以從空閑的未分配資源中選擇。在其它情況下,對cpu、存儲器、以及i/o資源進行分配可能需要從其它應用實例中對這些資源中的一些資源解除分配,以釋放這些資源,并使這些資源被選擇以供分配。然而,在未選擇對硬件資源進行分配和/或解除分配(不可行)的情況下,可以選擇縮減應用實例中的一些應用實例的資源需求。
在確定重新調整資源分配后,過程500可以進行到框506。在框506處,可以對分配硬件資源給計算機節點上的應用實例進行調整。另一方面,在確定縮減應用實例中的一些應用實例的資源需求后,過程500可以進行到框508。在框508處,可以要求應用實例削減其資源需求,例如,通過縮減和/或暫時停止其一個或多個進程/任務。在稍后的時間點,可以通知應用實例可以衍生和/或重新啟動附加的進程/任務。
過程500可以從框506或508返回到框502,并且如較早描述的從框502繼續進行。
圖6示出了可以適于用來實踐本公開的所選擇的方面的示例計算機系統。如所示出的,計算機600可以包括一個或多個處理器或處理器核心602、以及系統存儲器604。出于本申請(包括權利要求)的目的,可以認為術語“處理器”和“處理器核心”是同義的,除非上下文另有明確要求。附加地,計算機600可以包括大容量存儲設備606(例如,軟盤、硬盤驅動器、光盤只讀存儲器(cd-rom)等)、輸入/輸出設備608(例如,顯示器、鍵盤、光標控件等)、以及通信接口610(例如,網絡接口卡、調制解調器等)。元件可以經由系統總線612彼此耦合,系統總線612可以表示一條或多條總線。在多條總線的情況下,多條總線可以由一個或多個總線橋(未示出)橋接。
這些元件中的每一個元件可以執行其本領域已知的常規功能。特別地,系統存儲器604和大容量存儲設備606可以用于存儲實現與較早描述的圖1的sam108和/或圖2、圖3、和/或圖4的過程200、300、和/或400相關聯的操作(統稱為計算邏輯622)的編程指令的工作副本和永久副本。各種元件可以通過(多個)處理器602所支持的匯編指令或能夠被編譯到這樣的指令中的高級語言(舉例來說,例如,c)來實現。
這些元件610-612的數量、能力、和/或容量可以取決于計算機600是用作移動設備、固定設備、還是服務器而變化。當用作移動設備時,這些元件610-612的能力和/或容量可以取決于移動設備是智能電話、計算平板、超級本、還是筆記本電腦而變化。否則,元件610-612的構造是已知的,并且因此將不再進一步描述。
如本領域技術人員將認識到的,本公開可以體現為方法或計算機程序產品。因此,除了如較早描述的以硬件來體現之外,本公開可以采取完全軟件實施例(包括固件、駐留軟件、微代碼等)的形式,或者采取組合軟件方面和硬件方面(其一般可以全部被稱為“電路”、“模塊”、或“系統”)的實施例的形式。此外,本公開可以采取體現在任何有形的或非暫時性的表達介質中的計算機程序產品的形式,其具有體現在介質中的計算機可用的程序代碼。圖7示出了可以適于用來存儲指令的示例計算機可讀非暫時性存儲介質,該指令響應于由裝置執行指令而使得該裝置實踐本公開的所選擇的方面。如所示出的,非暫時性計算機可讀存儲介質702可以包括多個編程指令704。編程指令704可以被配置為使得諸如計算機600的設備能夠響應于編程指令的執行而執行與圖1的sam主端和代理107和108和/或圖2、圖3、圖4、和/或圖5的過程200、300、400、和/或500相關聯的操作。相反,在替代實施例中,可以將編程指令704布置在多個計算機可讀非暫時性存儲介質702上。在替代實施例中,可以將編程指令704布置在計算機可讀暫時性存儲介質702上,例如,信號。
可以使用一種或多種計算機可用或計算機可讀的介質的任何組合。計算機可用或計算機可讀介質可以是:例如但不限于電子、磁、光學、電磁、紅外、或半導體系統、裝置、設備、或傳播介質。計算機可讀介質的更具體的示例(非窮盡性列表)將包括以下:具有一條或多條連線的電連接、便攜式計算機軟盤、硬盤、隨機存取存儲器(ram)、只讀存儲器(rom)、可擦除可編程只讀存儲器(eprom或閃速存儲器)、光纖、便攜式光盤只讀存儲器(cd-rom)、光存儲設備、傳輸介質(例如,支持互聯網或內聯網的傳輸介質)、或磁存儲設備。注意,計算機可用或計算機可讀介質甚至可以是在其上打印程序的紙張或另一合適的介質,這是因為可以經由例如對紙張或其它介質進行光學掃描而電子地捕獲程序,然后如果有必要則以合適的方式進行編譯、解釋、或以其它方式處理,并且然后存儲在計算機存儲器中。在本文檔的上下文中,計算機可用或計算機可讀介質可以是能夠包含、存儲、傳達、傳播、或傳送程序以供指令執行系統、裝置、或設備使用或與指令執行系統、裝置、或設備結合地使用的任何介質。計算機可用介質可以包括具有體現在其中的計算機可用程序代碼的傳播數據信號,或者以基帶的形式,或者作為載波的一部分。計算機可用程序代碼可以使用任何適當的介質來傳輸,包括但不限于無線、有線、光纖電纜、rf等。
用于執行本公開的操作的計算機程序代碼可以以一種或多種編程語言的任何組合來編寫,一種或多種編程語言包括面向對象的編程語言(例如,java、smalltalk、c++等)和常規過程編程語言(例如,“c”編程語言或類似的編程語言)。程序代碼可以完全在用戶的計算機上執行、部分地在用戶的計算機上執行、作為獨立的軟件包、部分地在用戶的計算機上且部分地在遠程計算機上執行、或者完全在遠程計算機或服務器上執行。在后一種場景下,遠程計算機可以通過包括局域網(lan)或廣域網(wan)的任何類型的網絡連接到用戶的計算機,或者可以進行到外部計算機的連接(例如,通過使用互聯網服務提供商的互聯網)。
參考根據本公開的實施例的方法、裝置(系統)、以及計算機程序產品的流程圖圖示和/或框圖來描述本公開。可以理解,流程圖圖示和/或框圖的每個框以及流程圖圖示和/或框圖中的框的組合能夠由計算機程序指令實現。可以將這些計算機程序指令提供給通用計算機、專用計算機、或其它可編程數據處理裝置的處理器以產生機器,使得經由計算機或其它可編程數據處理裝置的處理器執行的指令創建用于實現在流程圖和/或框圖的框或多個框中指定的功能/動作的模塊。
這些計算機程序指令還可以存儲在計算機可讀介質中,其能夠指導計算機或其它可編程數據處理裝置以特定的方式運轉,以使得存儲在計算機可讀介質中的指令產生包括實現在流程圖和/或框圖的框或多個框中指定的功能/動作的指令模塊的制品。
還可以將計算機程序指令加載到計算機或其它可編程數據處理裝置上,以使得在計算機或其它可編程裝置上執行一系列操作步驟以產生計算機實現的過程,使得在計算機或其它可編程裝置上執行的指令提供用于實現在流程圖和/或框圖的框或多個框中指定的功能/動作的過程。
附圖中的流程圖和框圖示出了根據本公開的各種實施例的系統、方法、以及計算機程序產品的可能實現方式的架構、功能、以及操作。在這方面,流程圖或框圖中的每個框可以表示模塊、段、或代碼的部分,其包括用于實現指定的(多個)邏輯功能的一個或多個可執行指令。還應當注意,在一些替代實現方式中,框中指出的功能可以不按照附圖中所指出的次序發生。例如,連續示出的兩個框實際上可以基本上同時執行,或者框有時可以以相反的次序執行,這取決于所涉及的功能。還將注意到,框圖和/或流程圖圖示的每個框以及框圖和/或流程圖圖示中的框的組合能夠由執行指定功能或動作的基于專用硬件的系統、或專用硬件和計算機指令的組合來實現。
本文使用的術語僅出于描述特定實施例的目的,而并非旨在限制本公開。如本文所使用的,單數形式“一(a)”、“一個(an)”、以及“該(the)”旨在也包括復數形式,除非上下文另有明確指示。將進一步理解,當在本說明書中使用時,術語“包括”和/或“包括有”指定所陳述的特征、整體、步驟、操作、元件、和/或組件的存在,但不排除一個或多個其它特征、整體、步驟、操作、元件、組件、和/或其組的存在或添加。
可以將實施例實現為計算機進程、計算系統、或者諸如計算機可讀介質的計算機程序產品的制品。計算機程序產品可以是計算機系統可讀并對計算機程序指令進行編碼以用于執行計算機進程的計算機存儲介質。
所附權利要求書中的所有模塊或步驟加功能元素的對應結構、材料、動作、以及等同物旨在包括用于結合特別要求保護的其它要求保護的元素執行功能的任何結構、材料、或動作。本公開的說明書是出于示例說明和描述的目的而呈現的,而并非旨在是窮盡性的或限于以所公開的形式的公開內容。在不脫離本公開的范圍和精神的情況下,許多修改和變化對于普通技術人員將是顯而易見的。選擇并描述實施例以便于最好地解釋本公開的原理和實際應用,并且使得本領域其他普通技術人員能夠理解具有適合于所設想的特定用途的各種修改的實施例的公開內容。
返回參考圖6,對于一個實施例,處理器602中的至少一個可以與具有計算邏輯622的存儲器封裝在一起(代替存儲在存儲器604和存儲設備606上)。對于一個實施例,處理器602中的至少一個可以與具有計算邏輯622的存儲器封裝在一起以形成系統級封裝(sip)。對于一個實施例,處理器602中的至少一個可以與具有計算邏輯622的存儲器集成在相同的管芯上。對于一個實施例,處理器602中的至少一個可以與具有計算邏輯622的存儲器封裝在一起以形成片上系統(soc)。對于至少一個實施例,soc可以在例如但不限于智能電話或計算平板中使用。
因此,已經描述了本公開的各種示例實施例,包括但不限于:
示例1可以是用于集群計算的服務器,包括:存儲器和輸入/輸出資源;一個或多個處理器,其與存儲器和輸入/輸出資源耦合,以操作應用主端的多個應用從端中的一個應用從端;其中,其它應用從端在其它服務器上被操作,其它服務器與該服務器一起作為計算集群的成員。服務器還可以包括服務確保管理器代理,其用于管理將一個或多個處理器、存儲器、以及輸入/輸出資源分配給應用從端,以確保符合從應用級服務級協議導出的節點級服務級別協議,以便有助于近似確保符合應用級服務協議;其中,應用級服務協議指定聚合服務級別由應用主端和從端提供。
示例2可以是示例1,其中,服務確保管理器代理可以接收來自服務確保管理器主端的節點級服務級別協議。
示例3可以是示例1,其中,服務確保管理器代理可以針對處理器、存儲器、或輸入/輸出資源需求對應用從端進行查詢。
示例4可以是示例1,其中,服務確保管理器代理可以關于一個或多個性能度量對應用從端進行查詢。
示例5可以是示例1-4中的任何一個,其中,服務確保管理器代理可以選擇一個或多個處理器、存儲器、或輸入/輸出資源中的一個或多個用于資源分配或解除分配調整,或者縮減服務器上的其它應用從端的資源需求,其中,其它應用從端與其它應用主端相關聯。
示例6可以是示例5,其中,服務確保管理器代理可以將一個或多個節制命令提供給應用從端或服務器上的另一應用從端,其中,另一應用從端與另一應用主端相關聯。
示例7可以是示例6,其中,節制命令可以包括用于搶占另一應用從端的進程的命令、用于減少另一應用從端的進程的數量的命令、或者用于暫停另一應用從端的命令。
示例8可以是示例7,其中,節制命令還可以包括用于增加另一應用從端的進程的數量的命令、或者用于恢復另一應用從端的命令。
示例9可以是示例6,其中,服務確保管理器代理可以通過服務確保管理器代理的服務確保管理器主端將一個或多個節制命令提供給另一應用主端。
示例10可以是示例5,其中,服務確保管理器代理可以針對狀態或資源可用性對一個或多個處理器、存儲器、或i/o資源進行查詢。
示例11可以是示例5,其中,服務確保管理器代理可以將一個或多個分配命令提供給一個或多個處理器、存儲器、或i/o資源,以將一個或多個處理器、存儲器、或i/o資源中的附加資源分配給應用從端。
示例12可以是示例5,其中,服務確保管理器代理可以將一個或多個解除分配命令提供給一個或多個處理器、存儲器、或i/o資源,以對一個或多個處理器、存儲器、或i/o資源中的先前被分配給服務器上的另一應用從端的資源解除分配,其中,該另一應用從端與另一應用主端相關聯。
實施例13可以是一種用于管理集群計算的方法,包括:由計算集群的計算節點與操作其它應用從端的計算集群的其它計算節點相結合地對應用主端的多個應用從端中的至少一個應用從端進行操作;以及由計算節點利用服務確保管理器代理來管理將計算節點的一個或多個處理器、存儲器、以及輸入/輸出資源分配給應用從端,以確保符合從應用級服務級別協議導出的節點級服務級別協議,以便有助于近似確保符合應用級服務協議;其中,應用級服務協議指定聚合服務級別由應用主端和從端共同提供。
示例14可以是示例13,其中,管理可以包括利用服務確保管理器代理來接收來自服務確保管理器主端的節點級服務級別協議。
示例15可以是示例13,其中,管理還可以包括服務確保管理器代理針對處理器、存儲器、或輸入/輸出資源需求對應用從端進行查詢。
示例16可以是示例13,其中管理還可以包括服務確保管理器代理關于一個或多個性能度量對應用從端進行查詢。
示例17可以是示例13-16中的任何一個,其中,管理還可以包括服務確保管理器代理選擇一個或多個處理器、存儲器、或輸入/輸出資源中的一個或多個用于資源分配或解除分配調整,或者縮減服務器上的其它應用從端的資源需求,其中,其它應用從端與其它應用主端相關聯。
示例18可以是示例17,其中,管理還可以包括服務確保管理器代理將一個或多個節制命令提供給應用從端或服務器上的另一應用從端,其中,另一應用從端與另一應用主端相關聯。
示例19可以是示例18,其中,節制命令可以包括用于搶占另一應用從端的進程的命令、用于減少另一應用從端的進程的數量的命令、或者用于暫停另一應用從端的命令。
示例20可以是示例19,其中,節制命令還可以包括用于增加另一應用從端的進程的數量的命令、或者用于恢復另一應用從端的命令。
示例21可以是示例18,其中,管理還可以包括服務確保管理器代理通過服務確保管理器代理的服務確保管理器主端將一個或多個節制命令提供給另一應用主端。
示例22可以是示例18,其中,管理還可以包括服務確保管理器代理針對狀態或資源可用性對一個或多個處理器、存儲器、或i/o資源進行查詢。
示例23可以是示例17,其中,管理還可以包括服務確保管理器代理將一個或多個分配命令提供給一個或多個處理器、存儲器、或i/o資源,以將一個或多個處理器、存儲器、或i/o資源中的附加資源分配給應用從端。
示例24可以是示例17,其中,管理還可以包括服務確保管理器代理將一個或多個解除分配命令提供給一個或多個處理器、存儲器、或i/o資源,以對一個或多個處理器、存儲器、或i/o資源中的先前被分配給服務器上的另一應用從端的資源解除分配,其中,另一應用從端與另一應用主端相關聯。
示例25可以是一種或多種計算機可讀介質,包括指令,響應于指令由計算節點執行,該指令使得計算集群的計算節點對服務確保管理器代理進行操作以用于:管理將計算節點的一個或多個處理器、存儲器、以及輸入/輸出資源分配給應用主端的多個應用從端中的一個應用從端,其在計算節點上被操作,以確保符合從應用主端的應用級服務級別協議導出的節點級服務級別協議,以便有助于近似確保符合應用級服務協議;其中,應用級服務協議指定聚合服務級別由應用主端和從端共同提供,其中,其它應用從端在計算集群的其它計算節點上被操作。
示例26可以是示例25,其中,服務確保管理器代理可以接收來自服務確保管理器主端的節點級服務級別協議。
示例27可以是示例25,其中,服務確保管理器代理可以針對處理器、存儲器、或輸入/輸出資源需求對應用從端進行查詢。
示例28可以是示例25,其中,服務確保管理器代理可以關于一個或多個性能度量對應用從端進行查詢。
示例29可以是示例25-28中的任何一個,其中,服務確保管理器代理可以選擇一個或多個處理器、存儲器、或輸入/輸出資源中的一個或多個用于資源分配或解除分配調整,或者縮減服務器上的其它應用從端的資源需求,其中,其它應用從端與其它應用主端相關聯。
示例30可以是示例29,其中,服務確保管理器代理可以將一個或多個節制命令提供給應用從端或服務器上的另一應用從端,其中,另一應用從端與另一應用主端相關聯。
示例31可以是示例30,其中,節制命令包括用于搶占另一應用從端的進程的命令、用于減少另一應用從端的進程的數量的命令、或者用于暫停另一應用從端的命令。
示例32可以是示例31,其中,節制命令還包括用于增加另一應用從端的進程的數量的命令、或者用于恢復另一應用從端的命令。
示例33可以是示例30,其中,服務確保管理器代理可以通過服務確保管理器代理的服務確保管理器主端將一個或多個節制命令提供給另一應用主端。
示例34可以是示例29,其中,服務確保管理器代理可以針對狀態或資源可用性對一個或多個處理器、存儲器、或i/o資源進行查詢。
示例35可以是示例29,其中,服務確保管理器代理可以將一個或多個分配命令提供給一個或多個處理器、存儲器、或i/o資源,以將一個或多個處理器、存儲器、或i/o資源中的附加資源分配給應用從端。
示例36可以是示例29,其中,服務確保管理器代理可以將一個或多個解除分配命令提供給一個或多個處理器、存儲器、或i/o資源,以對一個或多個處理器、存儲器、或i/o資源中的先前被分配給服務器上的另一應用從端的資源解除分配,其中,另一應用從端與另一應用主端相關聯。
實施例37可以是一種用于集群計算的服務器,包括:用于由計算集群的計算節點與操作其它應用從端的計算集群的其它計算節點相結合地對應用主端的多個應用從端中的至少一個應用從端進行操作的模塊;以及用于由計算節點管理將計算節點的一個或多個處理器、存儲器、以及輸入/輸出資源分配給應用從端,以確保符合從應用級服務級別協議導出的節點級服務級別協議,以便有助于近似確保符合應用級服務協議的模塊;其中,應用級服務協議指定聚合服務級別由應用主端和從端共同提供。
示例38可以是示例37,其中,用于管理的模塊可以包括用于接收來自服務確保管理器主端的節點級服務級別協議的模塊。
示例39可以是示例37,其中,用于管理的模塊還可以包括用于針對處理器、存儲器、或輸入/輸出資源需求對應用從端進行查詢的模塊。
示例40可以是示例37,其中,用于管理的模塊還可以包括用于關于一個或多個性能度量對應用從端進行查詢的模塊。
示例41可以是示例37-40,其中,用于管理的模塊還可以包括用于選擇一個或多個處理器、存儲器、或輸入/輸出資源中的一個或多個用于資源分配或解除分配調整,或者縮減服務器上的其它應用從端的資源需求的模塊,其中,其它應用從端與其它應用主端相關聯。
示例42可以是示例41,其中,用于管理的模塊還可以包括用于將一個或多個節制命令提供給應用從端或服務器上的另一應用從端的模塊,其中,另一應用從端與另一應用主端相關聯。
示例43可以是示例42,其中,節制命令包括用于搶占另一應用從端的進程的命令、用于減少另一應用從端的進程的數量的命令、或者用于暫停另一應用從端的命令。
示例44可以是示例43,其中,節制命令還包括用于增加另一應用從端的進程的數量的命令、或者用于恢復另一應用從端的命令。
示例45可以是示例42,其中,用于管理的模塊還可以包括用于通過服務確保管理器代理的服務確保管理器主端將一個或多個節制命令提供給另一應用主端的模塊。
示例46可以是示例42,其中,用于管理的模塊還可以包括用于針對狀態或資源可用性對一個或多個處理器、存儲器、或i/o資源進行查詢的模塊。
示例47可以是示例41,其中,用于管理的模塊還可以包括用于將一個或多個分配命令提供給一個或多個處理器、存儲器、或i/o資源以將一個或多個處理器、存儲器、或i/o資源中的附加資源分配給應用從端的模塊。
示例48可以是示例41,其中,用于管理的模塊還可以包括用于將一個或多個解除分配命令提供給一個或多個處理器、存儲器、或i/o資源以對一個或多個處理器、存儲器、或i/o資源中的先前被分配給服務器上的另一應用從端的資源解除分配的模塊,其中,另一應用從端與另一應用主端相關聯。
對于本領域技術人員顯而易見的是,能夠在不脫離本公開的精神或范圍的情況下在所公開的設備和相關聯的方法的所公開的實施例中進行各種修改和變化。因此,本公開旨在覆蓋上面公開的實施例的修改和變化,只要這些修改和變化在任何權利要求及其等同內容的范圍內。