路由工作負載及其方法
2023-07-19 21:14:41
專利名稱:路由工作負載及其方法
技術領域:
本發明涉及一種在工作負載管理器中計算路由工作負載的方法,以及電腦程式
產品 O
背景技術:
大型機是主要由重要應用的大型組織和大量數據的處理(例如金融事務處理)使 用的計算機。為了提供可靠安全的系統,大型機是高度冗餘的。大型機能夠運行或託管多個 作業系統,因此可取代許多更小伺服器的使用,從而減少管理,和提供改進的可擴展性。現 代的大型機包括IBM zSeries和System z9伺服器。並行系統綜合體(sysplex)是使用z/OS在一起用作單一系統鏡像的IBM大型機 的集群。系統綜合體使用並行處理,並且能夠以全數據完整性讀取/寫入跨多個系統共享 的數據,以集中至多32個系統和跨系統共享工作負載。工作負載可跨系統中的各個處理器 動態分發,以及分發至具有可用資源的集群中的任意系統。工作負載平衡還允許跨並行系 統綜合體集群運行各種應用,同時保持重要響應等級。如果沒有正確地執行工作負載平衡 或工作負載路由,則在系統中可能發生過載。因此,需要一種在工作管理器中有效計算分派器(dispatcher)共享的方法、一種 工作負載管理器和一種適於執行根據本發明的方法的電腦程式產品。
發明內容
本發明提供一種在工作負載管理器中計算分派器共享(D)的方法,所述工作負載 管理器耦合至仲裁器,所述仲裁器耦合至多個系統,每個系統包括分派器,每個分派器耦合 至多個執行單元,所述仲裁器適用於接收和向所述分派器分發工作負載項目的流,所述執 行單元適用於執行所述工作負載項目,所述工作負載項目至少是第一、第二或第三類型,所 述方法包括以下步驟從存儲器讀取跨所述多個系統的針對每個工作負載類型的服務單元 總數(W),所述服務單元是用於測量在一時間間隔內CPU消耗的值;從所述存儲器讀取在所 述多個系統的每個系統(SYS)上針對每個工作負載類型的容量(cap)值,所述容量值指示 系統可在所述時間間隔內執行的服務單元最大數。所述方法還包括通過將每個系統上每個工作負載類型的所述容量除以每個工作 負載類型的所述服務單元總數來計算第一、第二和第三分派器相對共享(R),以及獲得每個 系統的所述分派器相對共享的最小值;通過將每個系統上針對每個工作負載類型的所述工 作負載項目的隊列長度(q)除以每個系統上每個工作負載類型的所述容量來計算針對每 個系統的相對隊列長度(V);通過使用算術運算組合所述最小值和所述相對隊列長度的第 一函數來針對每個系統計算所述分派器共享(D)。所述分派器共享指的是對於所有路由的分派器共享,這是所有分派器從仲裁器接 受的工作負載的共享。分派器相對共享指的是最小相對執行容量的分派器相對共享。所述方法的所述相對隊列長度的所述第一函數包括計算所述相對隊列長度的最大值的逆值。所述算術運算是乘法。所述第一、第二和第三工作負載類型是一般CPU(CP)、 Z應用協助處理器(ZAAP)和z9集成信息處理器(ZlIP)。所述分派器共享通過將所述分派 器共享除以所有系統的所有分派器共享的相加來規格化。所述方法的所述最小值通過將所 述最小值除以所有系統的所有最小值的相加來規格化。所述仲裁器向其他系統中的其他分 派器分發工作負載項目的所述流這些實施例的優點之一在於,作為容量不足或執行單元停機的結果分派器和執行 單元中的隊列不會生長成無窮大,只要總系統綜合體容量仍舊超過針對每個工作負載類型 的總工作負載需求。對於這些情況,向每個系統的所有路由的分派器共享取決於相對於任 意處理器上的其容量的隊列長度以及按其容量的工作負載類型的服務單元總數的相對值。 在一個系統上的執行單元停機的情況下,可通過向其他系統分發工作負載來補償,而不會 導致其他系統中的資源的溢出或堵塞。另一優點在於,分派器共享計算獨立於初始工作負 載分布和針對最佳工作負載分布的算術收斂。在另一方面,本發明涉及一種在計算機可用介質上存儲的電腦程式產品,包括 計算機可讀程序裝置,用於當在計算機上運行所述程序時使得所述計算機執行根據本發明 的方法。在另一方面,本發明涉及一種數據處理系統,用於可操作為執行根據任意先前實 施例的工作負載管理。
在以下的本發明具體實施方式
中,僅參照附圖通過實例更加詳細地進行了描述, 其中圖1示出根據本發明實施例的第一系統綜合體的框圖;圖2示出根據本發明實施例的形成系統綜合體的多個互連繫統的框圖;圖3示出根據本發明實施例的計算分派器共享的方法的流程圖;圖4示出根據本發明實施例的工作負載管理器的計算的框圖。
具體實施例方式圖1示出包括第一系統118的實例100,所述第一系統118具有耦合至仲裁器102 的第一工作負載管理器101、耦合至第一、第二和第三分派器103-105的仲裁器,每個分派 器耦合至三個執行單元106-114。第一工作負載管理器101耦合至另外兩個工作負載管理 器120-121。第一分派器103位於第二系統117中,並耦合至執行單元106-108 ;分派器104 位於第一系統118中,並耦合至三個執行單元109-111 ;第三分派器105位於第三系統119 中,並耦合至另外三個執行單元112-114。存儲器116耦合至工作負載管理器101。仲裁器102接收進入工作負載項目115,並將他們路由至分派單元103-105。每個 分派器確定工作負載項目的工作負載類型,並將他們路由至指定的執行單元106-114。可 針對每個分派器和每個執行單元來測量多個工作負載項目的隊列長度。例如,分派器103 具有5個工作負載項目的隊列長度(qD1),執行單元106具有三個工作負載項目的隊列長度 (qEu)。不需要針對所有分派器或執行單元測量隊列長度。本發明實施例的唯一前提是測 量在仲裁器之後路由隊列的至少一個階段。
每個工作負載項目需要執行單元在一時間間隔內不同的CPU消耗,以及仲裁器預 先並不知曉該消耗,從而對於分派器的多個工作負載項目115的分配不依賴於每個工作負 載項目的大小或其CPU消耗。通過分派器識別每個工作負載項目的工作負載類型,以及通 過分派器或通過執行單元識別工作負載項目的大小。由於仲裁器預先並不知曉工作負載項 目的工作負載類型和工作負載項目的大小,所以錯誤的算法可能導致隊列生長成無窮大。 所有系統的工作負載管理器101、120-121被連接,並且持久地交互和傳送其系統的容量和 工作負載值。存儲器116存儲跨多個系統的所有工作負載類型的服務單元總數的值以及每 個系統的所有工作負載類型的容量值。
圖2示出系統綜合體200的實例,所述系統綜合體200是由包括第一、第二、第三 和第四系統201-204的多個互連繫統形成的。每個系統包括工作負載管理器205-208,所有 工作負載管理器205-208彼此耦合。工作負載管理器205-206耦合至仲裁器209-210。或者, 在整個系統綜合體中具有一個仲裁器足以。仲裁器209-210耦合至多個分派器213-216,並 且每個分派器213-216也耦合至多個執行單元217-220。由於仲裁器可將工作負載路由至 系統綜合體中的任意系統,所以並非每個系統需要仲裁器。每個工作負載管理器205-208處理路由算法,其計算分派器應接收的工作負載項 目的相對量的分派器共享。仲裁器209-210並不知曉工作負載類型或工作負載大小,以及 從工作負載管理器205-208接收路由推薦,以及根據算法的結果分發工作負載項目。分派 器213-216還已知為隊列管理器,以及從仲裁器209-210接收工作負載項目,以及對他們排 隊直到他們通過執行單元217-220 (還稱為伺服器)被提取。執行單元217-220執行工作 負載項目,讀取工作負載類型,以及決定什麼處理器能夠處理工作負載項目。工作負載類型 可以是包括一般CPU(CP)、z應用輔助處理器(zAAp)、和z9集成信息處理器(zIIP)中的三 個或更多個類型。針對每個工作負載類型使用不同處理器。耦合跨所有系統的工作負載管 理器,以跨所有系統接收與分派器狀態相關的信息。圖3示出在工作負載管理器中計算分派器共享(D)的方法的流程圖300。第一步 驟301包括在進行中的時間間隔內跨多個系統獲得針對每個工作負載類型的服務單元總 數。服務單元是測量在一時間間隔內CPU消耗的值。服務單元總數包括針對第一工作負載 類型的值、針對第二和第三工作負載類型的第二和第三值。另外的工作負載類型也可能在 系統中是可用的,具有另外相應的服務單元總數。第二步驟302包括針對多個系統的每個 系統上的每個工作負載類型(包括第一、第二和第三工作負載類型)獲得容量值。所述容 量測量系統能夠在一時間間隔內執行的服務單元的最大量。針對每個工作負載類型和針對 每個系統獲得不同容量值,從而每個系統將包括針對每個工作負載類型的容量值。流程圖300還包括第三步驟303,用於計算分派器的相對共享,這是通過將每個系 統上針對每個工作負載類型的容量除以針對每個工作負載類型的服務單元總數獲得的。將 獲得的每個系統上針對每個工作負載類型的容量除以相同工作負載類型的服務單元總數, 並且最小值相應於每個系統的分派器的相對共享。在第三步驟303,針對每個系統獲得一個 值。第四步驟304包括通過將每個系統上針對每個工作負載類型的工作負載項目的隊列 長度除以每個系統上的每個工作負載類型的容量,從每個系統計算相對隊列長度,每個系 統獲得針對每個工作負載類型的值。第五步驟305通過使用算術運算組合最小值和相對隊 列長度的第一函數來針對每個系統計算分派器共享(D)。
圖4示出跨多個分派器分發工作負載項目的流的分派器共享的計算的實例。該 表包括三個系統401-403、第一工作負載類型404、第二 405和第三工作負載類型406 ;服務 單元總數407,每個系統上的多個容量,第一系統408上的第一多個容量408,第二系統409 上的第二多個容量409,和第三系統410上的第三多個容量410。第二表420還包括每個系 統421-423上的每個工作負載類型的多個隊列長度,每個系統上和針對每個工作負載類型 424-426的計算的相對隊列長度,和每個系統427上針對每個工作負載類型的相對隊列長 度的函數。
用於在工作負載管理器中計算分派器共享的第一步驟之一包括跨所有系統 401-403獲得針對每個工作負載類型的服務單元總數407的值。在這個實例中,針對第一工 作負載類型在第一系統401上的服務單元總數為300,針對第二工作負載類型的服務單元 總數為500,針對第三工作負載類型的第三服務單元總數為10。另一步驟包括獲得每個系統408-410和工作負載類型的容量值。例如,在第一系 統401上,第一工作負載類型的容量為90,第二工作負載類型的容量為100,以及針對第三 工作負載類型的容量為10。在第二系統402上,針對第一工作負載類型的容量為200,針對 第二工作負載類型的容量為400,以及針對第三工作負載類型的容量為100。在針對所有系 統獲得容量之後,可在每個系統上針對每個工作負載類型計算分派器相對共享。在第一系統401上,通過將第一工作負載類型的容量(相應於「90」)除以第一工 作負載類型的服務單元總數來獲得系統能夠處理411的第一工作負載,得到「0.3」。將第 二工作負載類型的第二容量(具有值「100」)除以第二工作負載類型的服務單元總數(具 有值「500」),得到系統能夠處理的第二工作負載「0. 2」。這個值指的是系統能夠處理的百 分比的實際工作負載。針對第三系統重複相同處理,得到「1」,並且跨所有系統重複相同處 理,獲得針對每個系統的三個不同值。計算分派器共享的方法的另一步驟包括計算先前獲得的分派器相對共享的最小 值。例如,在第一系統上,存在分派器相對共享的三個值,為「0. 3」、「0. 2」和「1」;這三個值 的最小值為「0. 2」。針對第二系統,最小值為「0. 6」,以及在第三系統上,分派器相對共享的 最小值為「1」。第二表420示出包括計算分派器共享的方法的以下步驟的實例,所述方法包括 通過將隊列長度除以針對特定工作負載類型的容量來計算相對隊列長度424-426。在第一 系統401上針對第一工作負載類型,隊列長度為125 ;針對第二工作負載類型的隊列長度為 「89」;以及針對第三工作負載類型的第三隊列長度為「67」。通過將「125」除以「90」來獲 得第一系統的第一相對隊列長度,獲得「1.388」;以及通過將「89」除以「100」來獲得第二 相對隊列長度,獲得「0. 89」。跨所有系統,針對所有工作負載類型的所有隊列長度重複相同 處理,從而第一系統的第三相對隊列長度為「6. 7」。表420還包括相對隊列長度的第一函數,包括獲得1加最大相對隊列長度的逆值。 在第一系統401上,最大相對隊列長度為「6. 7」,從而該值加1的逆值為「0. 12987」。在第 二系統上,最大相對隊列長度為「3. 655」,從而該值加1的逆值為「0. 214」;以及針對第三系 統,最大相對隊列長度為「4. 356」,並且最大隊列長度的逆值為「0. 186」。當計算了所有這 些值時,通過將每個系統的分派器相對共享的最小值與每個系統的第一函數值相乘來獲得 分派器共享,從而針對第一系統,將「0. 2」與「0. 129」相乘,獲得「0. 0259」 ;以及針對第二系統,將「0. 66」與「0.214」相乘。 最後,針對第三系統,將「1」與「0. 18」相乘。這三個值指示針對每個系統的分派 器共享,從而分派器可針對每個分派器路由不同量的工作負載單元,從而跨所有分派器和 針對所有系統獲得工作負載項目的最可能的分發。在預定義的、固定的時間間隔之後,重複 計算,考慮到工作負載W、容量和隊列長度的任意改變,並由此將分派器共享調節成新的最 佳值。本發明可採用完全硬體實施例、完全軟體實施例或包含硬體和軟體元素的實施例 的形式。在優選實施例中,在包括但不限於固件、駐留軟體、微碼等的硬體和軟體中實現本 發明。此外,本發明可採用從計算機可用或計算機可讀介質可訪問的電腦程式產品的 形式,所述計算機可用或計算機可讀介質提供用於計算機或任意指令執行系統或與其連接 的程序代碼。為了這裡說明的目的,計算機可用或計算機可讀介質可以是可包含、存儲、通 信、傳播或傳輸用於指令執行系統、裝置或設備或與其連接的程序的任意有形裝置。介質可以是電子、磁、光、電磁、紅外或半導體系統(或裝置或設備)或傳播介 質。計算機可讀介質的實例包括半導體或固態存儲器、磁帶、可卸計算機磁碟、隨機存取 存儲器(RAM)、只讀存儲器(ROM)、硬碟和光碟。光碟的當前實例包括壓縮盤-只讀存儲器 (CD-ROM)、壓縮盤-讀 / 寫(CD-R/W)和 DVD。適用於存儲和/或執行程序代碼的數據處理系統包括直接或通過系統總線間接 與存儲器元件耦合的至少一個處理器。存儲器元件可包括在程序代碼的實際執行期間採用 的本地存儲器、海量存儲裝置、以及提供至少一些程序代碼的臨時存儲以減少在執行期間 必須從海量存儲裝置提取代碼的次數的高速緩存。輸入/輸出或I/O設備(包括但不限於鍵盤、顯示器、定點設備等)可直接或通過 中間I/O控制器耦合至系統。網絡適配器也可耦合至系統,以使得數據處理系統能夠通過 中間專用網絡或公共網絡耦合至其他數據處理系統或遠程印表機或存儲設備。調製解調 器、電纜數據機和乙太網卡僅是網絡適配器的幾個當前可用類型。儘管上文引用了本發明的特定實施例,但是本領域普通技術人員應理解,在不脫 離本發明的原理和範圍的情況下,可對於這些實施例作出修改,其範圍由所附權利要求限 定。附圖標記列表
權利要求
一種在工作負載管理器(101)中計算分派器共享(D)的方法,所述工作負載管理器(101)耦合至仲裁器(102),所述仲裁器(102)耦合至多個系統(117 119),每個系統包括分派器(103),每個分派器(103)耦合至多個執行單元(106 114),所述仲裁器(102)適用於接收和向所述分派器(103 105)分發工作負載項目(115)的流,所述執行單元(106 114)適用於執行所述工作負載項目(115),所述工作負載項目(115)至少是第一、第二或第三類型,所述方法包括以下步驟從存儲器(116)讀取跨所述多個系統(117 119)的針對每個工作負載類型的服務單元總數(W),所述服務單元是用於測量在一時間間隔內CPU消耗的值;從所述存儲器讀取在所述多個系統(117 119)的每個系統(SYS)上針對每個工作負載類型的容量(cap)值,所述容量值指示系統可在所述時間間隔內執行的服務單元最大數;通過將每個系統上每個工作負載類型的所述容量除以每個工作負載類型的所述服務單元總數來計算第一、第二和第三分派器相對共享(R),以及獲得每個系統的所述分派器相對共享的最小值;通過將每個系統上針對每個工作負載類型的所述工作負載項目的隊列長度(q)除以每個系統上每個工作負載類型的所述容量來計算針對每個系統的相對隊列長度(V);通過使用算術運算組合所述最小值和所述相對隊列長度的第一函數來針對每個系統計算所述分派器共享(D)。
2.如權利要求1所述的方法,其中所述相對隊列長度的所述第一函數包括計算所述 相對隊列長度的最大值的逆值。
3.如權利要求1或2所述的方法,其中所述算術運算是乘法。
4.如任意先前權利要求所述的方法,其中所述分派器共享(R)通過將所述分派器共享 除以所有系統的所有分派器共享的相加來規格化。
5.如任意先前權利要求所述的方法,其中所述第一、第二和第三工作負載類型是CP、 ζ AAP 和 ζ IIP。
6.如任意先前權利要求所述的方法,其中所述最小值通過將所述最小值除以所有系統 的所有最小值的相加來規格化。
7.如任意先前權利要求所述的方法,其中所述仲裁器向其他系統中的其他分派器分發 工作負載項目的所述流。
8.一種計算機可用介質上存儲的電腦程式產品,包括當在所述計算機上運行所述程 序時使得計算機執行根據先前權利要求1至7中任一項的方法的計算機可讀程序裝置。
9.一種用於工作負載管理的數據處理系統,可操作為根據先前權利要求1至7中任一 項執行。
10.一種包括計算機可用介質的電腦程式產品,包括在工作負載管理器中計算分派 器共享的計算機可讀程序,所述工作負載管理器耦合至仲裁器,所述仲裁器耦合至多個系 統,每個系統包括分派器,每個分派器耦合至多個執行單元,所述仲裁器適用於接收和向所 述分派器分發工作負載項目的流,所述執行單元適用於執行所述工作負載項目,所述工作 負載項目至少是第一、第二或第三類型,其中所述計算機可讀程序當在計算機設備上執行 時使得所述計算設備執行以下步驟從存儲器讀取跨所述多個系統的針對每個工作負載類型的服務單元總數,所述服務單元是用於測量在一時間間隔內CPU消耗的值;從所述存儲器讀取在所述多個系統的每個系統上針對每個工作負載類型的容量值,所 述容量值指示系統可在所述時間間隔內執行的服務單元最大數;通過將每個系統上每個工作負載類型的所述容量除以每個工作負載類型的所述服務 單元總數來計算第一、第二和第三分派器相對共享,以及獲得每個系統的所述分派器相對 共享的最小值;通過將每個系統上針對每個工作負載類型的所述工作負載項目的隊列長度除以每個 系統上每個工作負載類型的所述容量來計算針對每個系統的相對隊列長度;通過使用算術運算組合所述最小值和所述相對隊列長度的第一函數來針對每個系統 計算所述分派器共享。
11. 一種在工作負載管理器中計算分派器共享的數據處理系統,所述工作負載管理器 耦合至仲裁器,所述仲裁器耦合至多個系統,每個系統包括分派器,每個分派器耦合至多個 執行單元,所述仲裁器適用於接收和向所述分派器分發工作負載項目的流,所述執行單元 適用於執行所述工作負載項目,所述工作負載項目至少是第一、第二或第三類型,所述數據 處理系統包括從存儲器讀取跨所述多個系統的針對每個工作負載類型的服務單元總數的組件,所述 服務單元是用於測量在一時間間隔內CPU消耗的值;從所述存儲器讀取在所述多個系統的每個系統上針對每個工作負載類型的容量值的 組件,所述容量值指示系統可在所述時間間隔內執行的服務單元最大數;通過將每個系統上每個工作負載類型的所述容量除以每個工作負載類型的所述服務 單元總數來計算第一、第二和第三分派器相對共享,以及獲得每個系統的所述分派器相對 共享的最小值的組件;通過將每個系統上針對每個工作負載類型的所述工作負載項目的隊列長度除以每個 系統上每個工作負載類型的所述容量來計算針對每個系統的相對隊列長度的組件;通過使用算術運算組合所述最小值和所述相對隊列長度的第一函數來針對每個系統 計算所述分派器共享的組件。
全文摘要
本發明提供一種在工作負載管理器中計算分派器共享(D)的方法,所述工作負載管理器耦合至仲裁器,所述仲裁器耦合至多個系統,每個系統包括分派器,每個分派器耦合至多個執行單元,所述仲裁器適用於接收和向所述分派器分發工作負載項目的流,所述執行單元適用於執行所述工作負載項目,所述工作負載項目至少是三種類型,所述方法包括以下步驟讀取跨所述多個系統的針對每個工作負載類型的服務單元總數(W),所述服務單元是用於測量CPU消耗的值;讀取在每個系統(SYS)上針對每個工作負載類型的容量(cap)值,所述容量值指示系統可執行的服務單元最大數。所述方法還包括通過將所述容量除以所述服務單元總數來計算相對共享(R);獲得每個系統的所述分派器相對共享的最小值;通過將每個系統上針對每個工作負載類型的所述工作負載項目的隊列長度(q)除以每個系統上每個工作負載類型的所述容量來計算針對每個系統的相對隊列長度(V);通過將所述最小值和所述相對隊列長度的第一函數相乘來針對每個系統計算所述分派器共享(D)。
文檔編號G06F9/50GK101960428SQ200980106304
公開日2011年1月26日 申請日期2009年1月28日 優先權日2008年2月26日
發明者M·紐鮑爾, R·沃佩爾, V·施林克曼 申請人:國際商業機器公司