TWI740895B - 應用歸屬服務集群的分配方法和裝置 - Google Patents

應用歸屬服務集群的分配方法和裝置 Download PDF

Info

Publication number
TWI740895B
TWI740895B TW106104645A TW106104645A TWI740895B TW I740895 B TWI740895 B TW I740895B TW 106104645 A TW106104645 A TW 106104645A TW 106104645 A TW106104645 A TW 106104645A TW I740895 B TWI740895 B TW I740895B
Authority
TW
Taiwan
Prior art keywords
application
allocation
applications
allocation result
service
Prior art date
Application number
TW106104645A
Other languages
English (en)
Other versions
TW201734831A (zh
Inventor
劉劍波
Original Assignee
香港商阿里巴巴集團服務有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 香港商阿里巴巴集團服務有限公司 filed Critical 香港商阿里巴巴集團服務有限公司
Publication of TW201734831A publication Critical patent/TW201734831A/zh
Application granted granted Critical
Publication of TWI740895B publication Critical patent/TWI740895B/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/04Wireless resource allocation
    • H04W72/044Wireless resource allocation based on the type of the allocated resource
    • H04W72/0453Resources in frequency domain, e.g. a carrier in FDMA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/04Wireless resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/50Allocation or scheduling criteria for wireless resources
    • H04W72/52Allocation or scheduling criteria for wireless resources based on load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/50Allocation or scheduling criteria for wireless resources
    • H04W72/56Allocation or scheduling criteria for wireless resources based on priority criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本發明提供了一種應用歸屬服務集群的分配方法和裝置。所述方法包括:將多個應用分配至多個服務集群,獲得初始分配結果;多次更換所述應用歸屬的服務集群,獲得多個新增分配結果;計算所述初始分配結果和所述新增分配結果各自對所述服務集群的資源消耗量;選擇資源消耗量最小的分配結果作為最優分配結果。本發明提升了應用歸屬服務集群的分配效率,同時確保了得到的分配方案可以有效地節省服務集群的資源消耗成本。

Description

應用歸屬服務集群的分配方法和裝置
本發明係有關資料處理技術領域,特別是有關一種應用歸屬服務集群的分配方法和一種應用歸屬服務集群的分配裝置。
在一個典型的分散式系統中,為了便於對儲存和計算進行管理,比較好的方式是以應用的形式對資料和任務進行隔離,將應用作為一個整體分配至一個由若干相互獨立、透過網路而互聯的計算機組成的集群。同一集群上的不同應用擁有各自獨立的儲存空間,但共用集群的計算能力。
在這種架構的分散式系統中,其消耗主要為集群的一次性購置成本和集群間跨集群通訊而產生的累積性帶寬消耗成本。其中,跨集群通訊主要是由於處於不同集群的應用之間相互訪問資料所造成,由此,產生了對應用歸屬服務集群的分配最佳化需求,以使得在滿足計算、儲存等約束條件的同時可以最大限度來降低集群的購置成本和帶寬消耗成本。
目前對應用歸屬服務集群的分配方法中,主要是依賴於用戶憑藉經驗來進行分配,但該方法需要耗費大量的人力物力和時間,造成分配效率較低的問題。而且,分配方案可能並非是最優方案,造成了成本的浪費。
此外,分散式系統中會不斷增加新的應用和下線部分過期應用,集群也會進行機器擴容、機器報廢等的處理,應用和集群處於一個動態變化的過程中,針對於動態變化的分散式系統,分配方案也需要檢驗是否適用於目前的分散式系統,當不適用時需要重新確定分配方案。因此,目前的分配方法可能需要人工重新進行多次分配,增加了對人力物力和時間的耗費,進一步降低了分配效率。
鑒於上述問題,提出了本發明實施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種應用歸屬服務集群的分配方法和相應的一種應用歸屬服務集群的分配裝置。
為了解決上述問題,本發明揭示了一種應用歸屬服務集群的分配方法,包括:將多個應用分配至多個服務集群,獲得初始分配結果;多次更換所述應用歸屬的服務集群,獲得多個新增分配結果;計算所述初始分配結果和所述新增分配結果各自對所 述服務集群的資源消耗量;選擇資源消耗量最小的分配結果作為最優分配結果。
較佳地,所述將多個應用分配至多個服務集群為:按照排序針對各服務集群進行應用分配,直至所有應用均分配至某個服務集群為止;其中,針對排序在後的服務集群,在排序在前的服務集群分配後剩餘的應用中進行應用分配。
較佳地,在所述將多個應用分配至多個服務集群之前,所述方法還包括:按照所述服務集群的至少一種負載性能,對多個服務集群進行排序。
較佳地,在所述按照排序針對各服務集群進行應用分配之前,所述方法還包括:計算任意兩個應用之間的關聯權重;所述按照排序針對各服務集群進行應用分配包括:從目前可選的多個應用中,選擇關聯權重最大的兩個目標應用,並選擇與所述目標應用之一的關聯權重排序靠前的多個關聯應用,分配至所述服務集群。
較佳地,所述按照排序針對各服務集群進行應用分配還包括:若至少一個應用未分配至所述服務集群,則將未分配的應用按照所需資源消耗量進行排序;按照排序逐個將未分配的應用隨機分配至某一服務集群。
較佳地,在所述將多個應用分配至多個服務集群之前,所述方法還包括:以所述應用為節點,以具備資料交換的兩個應用為相鄰節點,建構包括多個應用的節點網路圖,所述關聯權重為連接兩個應用的邊的邊權重。
較佳地,所述選擇關聯權重最大的兩個目標應用包括:查找所述節點網路圖中邊權重最大的目標邊。
較佳地,所述選擇與所述目標應用之一的關聯權重排序靠前的多個關聯應用包括:在包含所述目標邊的子圖中,以所述目標邊的兩個目標節點為起點,進行廣度優先搜索;從搜索的多個關聯節點中,按照與所述目標節點的邊權重從大到小,在未超出所述服務集群的負載性能的條件下,選擇最多數量的關聯節點。
較佳地,在所述多次更換所述應用歸屬的服務集群,獲得多個新增分配結果之後,所述方法還包括:確定更換後的新增分配結果未超出各服務集群的負載性能。
較佳地,所述多次更換所述應用歸屬的服務集群,獲得多個新增分配結果包括:在隨機選擇的兩個服務集群中,分別隨機選擇一個應用進行交換,直至獲得多個新增分配結果為止。
較佳地,所述多次更換所述應用歸屬的服務集群,獲 得多個新增分配結果還包括:針對目前獲得的分配結果,依次選擇兩個分配結果,隨機從兩個分配結果中選擇兩個應用,並對選擇的兩個應用所歸屬的服務集群進行交換,獲得多個新增分配結果;和/或,隨機選擇一個應用並對所選擇的應用歸屬的服務集群進行修改,獲得多個新增分配結果。
較佳地,在所述在隨機選擇的兩個服務集群中,分別隨機選擇一個應用進行交換,直至獲得多個新增分配結果為止之後,所述方法還包括:篩選資源消耗量從小到大排序靠前的多個分配結果。
較佳地,所述計算所述初始分配結果和所述新增分配結果各自對所述服務集群的資源消耗量包括:計算所述初始分配結果和所述新增分配結果各自所需的集群購置成本;和/或,計算所述初始分配結果和所述新增分配結果中各個應用跨集群的帶寬消耗成本;加總各個應用的帶寬消耗成本,得到所述初始分配結果和所述新增分配結果的總帶寬消耗成本。
較佳地,所述選擇資源消耗量最小的分配結果作為最優分配結果包括:針對目前獲得的新增分配結果,若所述目前獲得的新增分配結果的資源消耗量小於所述初始分配結果的資源消耗量,則將所述目前獲得的新增分配結果作為目前最優分配結果,並與下一個新增分配結果進行比較,直至獲得最 優分配結果為止。
本發明還提供了一種應用歸屬服務集群的分配裝置,包括:應用初始分配模組,用以將多個應用分配至多個服務集群,獲得初始分配結果;應用多次更換模組,用以多次更換所述應用歸屬的服務集群,獲得多個新增分配結果;資源消耗量計算模組,用以計算所述初始分配結果和所述新增分配結果各自對所述服務集群的資源消耗量;最優分配結果選擇模組,用以選擇資源消耗量最小的分配結果作為最優分配結果。
較佳地,所述應用初始分配模組具體用以:按照排序針對各服務集群進行應用分配,直至所有應用均分配至某個服務集群為止;其中,針對排序在後的服務集群,在排序在前的服務集群分配後剩餘的應用中進行應用分配。
較佳地,所述裝置還包括:服務集群排序模組,用以按照所述服務集群的至少一種負載性能,對多個服務集群進行排序。
較佳地,所述裝置還包括:關聯權重計算模組,用以計算任意兩個應用之間的關聯權重;所述應用初始分配模組包括:關聯應用分配子模組,用以從目前可選的多個應用 中,選擇關聯權重最大的兩個目標應用,並選擇與所述目標應用之一的關聯權重排序靠前的多個關聯應用,分配至所述服務集群。
較佳地,所述裝置還包括:應用排序模組,用以若至少一個應用未分配至所述服務集群,則將未分配的應用按照所需資源消耗量進行排序;未分配應用隨機分配模組,用以按照排序逐個將未分配的應用隨機分配至某一服務集群。
較佳地,所述裝置還包括:節點網路圖建構模組,用以以所述應用為節點,以具備資料交換的兩個應用為相鄰節點,建構包括多個應用的節點網路圖,所述關聯權重為連接兩個應用的邊的邊權重。
較佳地,所述關聯應用分配子模組包括:目標邊查找子單元,用以查找所述節點網路圖中邊權重最大的目標邊。
較佳地,所述關聯應用分配子模組包括:廣度優先搜索子單元,用以在包含所述目標邊的子圖中,以所述目標邊的兩個目標節點為起點,進行廣度優先搜索;關聯節點選擇子單元,用以從搜索的多個關聯節點中,按照與所述目標節點的邊權重從大到小,在未超出所述服務集群的負載性能的條件下,選擇最多數量的關聯節 點。
較佳地,所述裝置還包括:新增分配結果確定模組,用以確定更換後的新增分配結果未超出各服務集群的負載性能。
較佳地,所述應用多次更換模組包括:應用交換子模組,用以在隨機選擇的兩個服務集群中,分別隨機選擇一個應用進行交換,直至獲得多個新增分配結果為止。
較佳地,所述應用多次更換模組包括:服務集群交互子模組,用以針對目前獲得的分配結果,依次選擇兩個分配結果,隨機從兩個分配結果中選擇兩個應用,並對選中的兩個應用所歸屬的服務集群進行交換,獲得多個新增分配結果。
服務集群修改子模組,用以隨機選擇一個應用並對所選擇的應用歸屬的服務集群進行修改,獲得多個新增分配結果。
較佳地,所述裝置還包括:分配結果篩選模組,用以篩選資源消耗量從小到大排序靠前的多個分配結果。
較佳地,所述資源消耗量計算模組包括:集群購置成本計算子模組,用以計算所述初始分配結果和所述新增分配結果各自所需的集群購置成本;帶寬消耗成本計算子模組,用以計算所述初始分配結果和所述新增分配結果中各個應用跨集群的帶寬消耗成 本;加總各個應用的帶寬消耗成本,得到所述初始分配結果和所述新增分配結果的總帶寬消耗成本。
較佳地,所述最優分配結果選擇模組包括:分配結果比較子模組,用以針對目前獲得的新增分配結果,若所述目前獲得的新增分配結果的資源消耗量小於所述初始分配結果的資源消耗量,則將所述目前獲得的新增分配結果作為目前最優分配結果,並與下一個新增分配結果進行比較,直至獲得最優分配結果為止。
本發明實施例包括以下優點:根據本發明實施例,基於初始分配結果來進行應用歸屬的服務集群的多次更換處理,以獲得多個新增分配結果,透過對多個新增分配結果而對服務集群的資源消耗量的計算和比較,由此確定最優分配結果,從而提升了應用歸屬服務集群的分配效率,同時確保了得到的分配方案可以有效地節省服務集群的資源消耗成本。
而且,本發明實施例可以針對動態變化的分散式系統而自動確定出最優分配結果,無須人工進行多次分配,進一步提升了應用歸屬服務集群的分配效率。
301‧‧‧應用初始分配模組
302‧‧‧應用多次更換模組
303‧‧‧資源消耗量計算模組
304‧‧‧最優分配結果選擇模組
401‧‧‧服務集群排序模組
402‧‧‧節點網路圖建構模組
403‧‧‧應用初始分配模組
404‧‧‧應用多次更換模組
405‧‧‧資源消耗量計算模組
406‧‧‧最優分配結果選擇模組
圖1是本發明的一種應用歸屬服務集群的分配方法實施例一的步驟流程圖;圖2是本發明的一種應用歸屬服務集群的分配方法實施例二的步驟流程圖; 圖3是本發明的一種應用歸屬服務集群的分配裝置實施例一的結構方塊圖;圖4是本發明的一種應用歸屬服務集群的分配裝置實施例一的結構方塊圖;圖5是本發明一種基於節點網路圖的建構示意圖;圖6是本發明一種應用歸屬服務集群的分配結果示意圖。
為了使本發明的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖和具體實施例而對本發明作進一步詳細的說明。
參照圖1,示出了本發明的一種應用歸屬服務集群的分配方法實施例一的步驟流程圖,具體可以包括如下步驟:
步驟101,將多個應用分配至多個服務集群,獲得初始分配結果。
上述的應用可以為一組資料和程式的集合,用以將不同歸屬的資料和計算,在邏輯上進行相互隔離的單位。也可以將應用理解為關係型資料庫中資料實例的概念。一個分散式系統可以具有多個服務集群。服務集群由若干台相互獨立、透過網路而互聯的計算機組成的電腦群或伺服器組。一個服務集群以一個整體的方式來提供儲存和計算能力。不同服務集群之間可以透過網路傳輸的方式來進行資 料交互等的通訊任務。
在本發明實施例的具體實現中,可以首先將多個應用分配至多個服務集群,得到初始的分配結果。初始的分配方式可以有多種,例如可以隨機分配,也可以按照服務集群的負載性能而對多個服務集群進行排序,按照排序分配應用。
步驟102,多次更換所述應用歸屬的服務集群,獲得多個新增分配結果。
針對初始分配結果,可以多次更換應用歸屬的服務集群。每一次更換都會產生一個新的分配結果,多次更換後即可獲得多個新的分配結果。更換時可以隨機更換,也可以按照一定的規則進行更換。例如,針對服務集群編號,按照編號順序更換,本發明實施例對更換的方式不作限制。
隨機更換應用歸屬的服務集群的方式可以有多種,例如,可以在服務集群中隨機選擇兩個服務集群,分別隨機選擇一個應用,交換分配至所選擇的另一個服務集群;或者,可以在任意兩個服務集群中分別隨機選擇兩個應用,將兩個應用歸屬的服務集群進行交換。本領域技術人員可以根據實際需要,採用各種方式來更換應用歸屬的服務集群,以獲得多個分配結果。
作為本發明實施例的較佳示例,在所述步驟102之後,所述方法可以還包括:確定更換後的新增分配結果未超出各服務集群的負載 性能。
作為最優分配結果的候選分配結果需要符合服務集群的負載性能,以確保分配結果可以實施。因此,更換應用歸屬的服務集群後,需要確定更換後的分配結果中,各個服務集群的負載性能依然能滿足實現該分配結果。
步驟103,計算所述初始分配結果和所述新增分配結果各自對所述服務集群的資源消耗量。
需要說明的是,服務集群根據其所包含的電腦數量而具有不同的購置成本、最大儲存量和CPU總核數,各服務集群也具有一定的出口帶寬;分配於服務集群中的每個應用需要一定的儲存空間,應用之間也可能需要進行資料交互,亦即,具有一定的資料交換量。跨集群的資料交互需要消耗一定的集群的出口帶寬,造成出口帶寬成本。由此,不同的應用分配方案,會產生不同的集群購置成本和帶寬消耗成本。而且,根據集群的最大儲存量和CPU總核數,每個集群所能儲存和運行的應用也會受到一定約束條件的分配限制。假設系統中具有N個服務集群和M個應用,需要將M個應用分配至N’(N’
Figure 106104645-A0202-12-0012-7
N)個服務集群,最優的分配結果可以為N’個集群的總購置成本+跨集群的帶寬消耗成本最小。在實際應用中,最優的分配結果可以由本領域技術人員根據實際情況來進行定義,例如僅將集群的總購置成本最小作為最優的分配結果,或集群總購置成本+維護成本最小作為最優的分配結果。
服務集群的資源消耗量可以包括集群購置成本和/或 帶寬消耗成本,也可以是其他的配置集群和運行集群所消耗的成本。
可以計算初始分配結果和多個新增分配結果各自對服務集群的資源消耗量,以便進一步比較各個分配結果的資源消耗量。
步驟104,選擇資源消耗量最小的分配結果作為最優分配結果。
在得到多個候選的分配結果及計算得到各自的資源消耗量後,可以從中選擇資源消耗量最小的分配結果作為最優分配結果。在實際應用中,也可以在得到一個新增分配結果後,與初始分配結果進行比較,若新增分配結果的資源消耗量小於初始分配結果的資源消耗量,則將新增分配結果作為最優分配結果。也可以進一步地獲取下一個新增分配結果,與上一個新增分配結果進行比較,重複多次的新增分配結果獲取和比較,直到得到最優的分配結果為止。還可以經過一定次數的與新增分配結果比較後,將資源消耗最小的分配結果作為最優分配結果。
根據本發明實施例,基於初始分配結果而進行應用歸屬的服務集群的多次更換處理,以獲得多個新增分配結果,透過對多個新增分配結果而對服務集群的資源消耗量的計算和比較,由此確定最優分配結果,從而提升了應用歸屬服務集群的分配效率,同時確保了得到的分配方案可以有效地節省服務集群的資源消耗成本。
而且,本發明實施例可以針對動態變化的分散式系統 而自動確定出最優分配結果,無須人工進行多次分配,進一步提升了應用歸屬服務集群的分配效率。
參照圖2,示出了本發明的一種應用歸屬服務集群的分配方法實施例二的步驟流程圖,具體可以包括如下步驟:
步驟201,按照所述服務集群的至少一種負載性能,對多個服務集群進行排序。
上述的負載性能可以包括每一個服務集群的最大儲存量、CPU總核數、各服務集群間的出口平均帶寬成本中的至少一者。負載性能也可以包括其他的服務集群的處理能力指標。可以按照服務集群的負載性能而對多個服務集群進行排序。具體的排序方式可以有多種,例如分別按照不同的負載性能進行排序,或者針對負載性能設定權重,根據服務集群的多個負載性能的綜合權重排序。排序可以是昇冪,也可以是降冪。本領域技術人員可以根據實際情況,按照負載性能來進行排序,本發明實施例對此不作限制。
步驟202,按照排序針對各服務集群進行應用分配,直至所有應用均分配至某個服務集群為止;其中,針對排序在後的服務集群,在排序在前的服務集群分配後剩餘的應用中進行應用分配,獲得初始分配結果。
在確定服務集群的排序後,可以按照排序來進行應用分配。分配時可以優先將應用分配至排序靠前的服務集群,排序在前的服務集群分配完畢後再將剩餘的應用分配 至排序在後的服務集群。
在實際應用中,分配可以具有一定的約束條件,例如,服務集群所能分配的應用的總資料量不超過服務集群的最大儲存量的90%;或者,服務集群內的應用在任一時間點對服務集群的記憶體和CPU消耗不超過其最大處理能力的80%;或者,單個應用不得分別分配至不同的服務集群,而必須完整地分配至同一個服務集群;也可以採用上述多個約束條件的組合。當然,本領域技術人員可以根據實際情況來設定各種約束條件或約束條件的組合,本發明實施例不限制約束條件的具體內容和約束條件的組合方式。
對各服務集群進行應用分配的處理,可以迴圈處理直至所有應用均分配至某個應用,並最終得到初始分配結果為止。或者,直至無法再滿足約束條件為止。
作為本發明實施例的較佳示例,在所述按照排序針對各服務集群進行應用分配之前,所述方法可以還包括:計算任意兩個應用之間的關聯權重。
所述按照排序針對各服務集群進行應用分配可以包括:從目前可選的多個應用中,選擇關聯權重最大的兩個目標應用,並選擇與所述目標應用之一的關聯權重排序靠前的多個關聯應用,分配至所述服務集群。
可以計算任意兩個應用之間的資料交換量,以作為應用之間的關聯權重。在計算得到全部應用之間的關聯權重 後,可以選擇關聯權重最大的兩個應用作為目標應用。基於選擇的兩個目標應用,可以繼續選擇與任意一個目標應用的關聯權重較大的其他關聯應用,分配至與目標應用所屬的服務集群中。
因為處於同一服務集群中的應用之間在交換資料時可以不佔用服務集群的出口帶寬,因此,可以儘量將相互間資料交換量較大的應用分配至同一個服務集群中,以減少服務集群間的資料交換量,降低對服務集群的帶寬佔用。
作為本發明實施例的較佳示例,所述按照排序針對各服務集群進行應用分配還包括:若至少一個應用未分配至所述服務集群,則將未分配的應用按照所需資源消耗量進行排序;按照排序逐個將未分配的應用隨機分配至某一服務集群。
對於剩餘的未分配應用,可以按照未分配應用所需資源消耗量進行降冪排序,按照排序逐個將未分配應用隨機分配至一個可容納該應用的服務集群中。其中,隨機分配可能要反復若干次,直至分配到可容納該應用的服務集群為止。所需資源消耗量可以為購置成本,帶寬佔用,應用所需的儲存空間,應用運行時需要佔用的記憶體等資源消耗量中的至少一者或多者的組合。
作為本發明實施例的較佳示例,在所述步驟202之前,所述方法可以還包括:以所述應用為節點,以具備資料交換的兩個應用為相鄰節點,建構包括多個應用的節點網路圖,所述關聯權重 為連接兩個應用的邊的邊權重。
從圖的角度考慮,可以基於應用而構成圖模型,透過圖演算法的方式而得到初始分配結果。具體而言,可以以應用作為圖的節點,以具備資料交換的任意兩個應用作為相鄰的節點,代表應用之間資料交換量的關聯權重作為兩個應用節點的邊的邊權重,從而建構包括有多個應用的節點網路圖。
作為本發明實施例的較佳示例,所述選擇關聯權重最大的兩個目標應用包括:查找所述節點網路圖中邊權重最大的目標邊。
節點網路圖中的兩個節點的邊權重表示兩個應用之間的關聯權重,選擇關聯權重最大的兩個目標應用,可以透過在節點網路圖中查找邊權重最大的目標邊而實現,查找到的目標邊所連接兩個節點,亦即,對應於關聯權重最大的兩個目標應用。
作為本發明實施例的較佳示例,所述選擇與所述目標應用之一的關聯權重排序靠前的多個關聯應用可以包括:
子步驟S11,在包含所述目標邊的子圖中,以所述目標邊的兩個目標節點為起點,進行廣度優先搜索。
子步驟S12,從搜索的多個關聯節點中,按照與所述目標節點的邊權重從大到小,在未超出所述服務集群的負載性能的條件下,選擇最多數量的關聯節點。
可以將包含有目標邊的節點形成一個子圖,以目標節點為起點進行廣度優先搜索(Breadth First Search, BFS)。廣度優先搜索是一種圖搜索演算法,區別於深度優先搜索,其從某個節點開始,沿著圖的寬度而遍歷各個節點,直至圖中的全部節點被訪問完畢才終止搜索計算。
從搜索得到的多個關聯節點中,可以按照與目標節點的邊權重從大到小的順序,在滿足服務集群的負載性能的條件下,選擇數量最多的關聯節點,亦即,選擇了與任意一個目標應用的關聯權重排序靠前的多個關聯應用。
為了便於本領域技術人員理解本發明實施例,圖5示出了本發明一種基於節點網路圖的建構示意圖。從圖中可見,將應用作為節點,將應用間的關聯權重作為節點的邊權重。其中,首先查找到未被分配的、邊權重最大的目標邊,同時目標邊連接的兩個節點所對應的目標應用需要滿足一定的約束條件。在包含有目標邊的子圖中,以目標節點為起點而進行廣度優先搜索,不斷地將與目標節點相鄰的其他節點、按照邊權重從大到小的順序進行擴展,將子圖中的其他節點加入到由目標節點及多個關聯節點形成的圖塊中,直至子圖中所有節點均被關聯,或已無法滿足約束條件為止。圖5中的節點1、節點2、節點3和節點4形成一個圖塊,節點5、節點6和節點9以及節點7和節點8分別形成另外的圖塊。亦即,應用1、應用2、應用3和應用4被分配至一個服務集群,應用5、應用6和應用9以及應用7和應用8分別分配至其他的兩個服務集群。相應地,參考圖6示出了本發明一種應用歸屬服務集群的分配結果示意圖。如圖6,上述9個應用分別被分配 至服務集群A、服務集群B和服務集群C。
利用應用和應用間的關聯權重來建構基於邊權重關聯各個節點的節點網路圖,可以將如何使得分配至同一服務集群的應用之間的資料交換量儘量大、同時使得服務集群之間的資料交換量儘量小的問題,轉換成如何使得圖塊之內的多個應用間邊權重儘量大、而圖塊間的邊權重儘量小的問題。透過以目標節點展開廣度優先搜索,按照其他節點的邊權重大小順序進行擴展關聯,使得圖塊之內多個節點之間的邊權重之和儘量大,而圖塊之間的邊權重之和儘量小。亦即,同一服務集群的應用之間的資料交換量儘量大,而服務集群之間的資料交換量儘量小。
步驟203,多次更換所述應用歸屬的服務集群,獲得多個新增分配結果。
作為本發明實施例的較佳示例一,所述步驟203可以包括:
子步驟S21,在隨機選擇的兩個服務集群中,分別隨機選擇一個應用進行交換,直至獲得多個新增分配結果為止。
針對於初始分配結果中的多個服務集群,可以在服務集群中隨機選擇兩個服務集群,分別隨機選擇一個應用,交換分配至所選擇的另一個服務集群,從而可以獲得新增的分配結果。可以反復進行多次的交換,以獲得多個新增分配結果。新增分配結果的具體數量可以由本領域技術人員根據實際情況來設定。作為本發明實施例的較佳示例, 在所述子步驟S21之後,所述方法可以還包括:篩選資源消耗量從小到大排序靠前的多個分配結果。
具體而言,可以針對目前獲得的多個新增分配結果,可以按照其資源消耗量從小到大進行排序,將排序靠前的若干個分配結果篩選出。
作為本發明實施例的較佳示例二,所述步驟203可以包括:子步驟S22,針對目前獲得的分配結果,依次選擇兩個分配結果,隨機從兩個分配結果中選擇兩個應用,並對選擇的兩個應用所歸屬的服務集群進行交換,獲得多個新增分配結果。
針對於目前獲得的多個分配結果,可以從中依次選擇兩個分配結果,在選擇的分配結果中分別選擇兩個應用,對所選擇的兩個應用所歸屬的服務集群進行交換,從而產生了新增分配結果。可以反復進行多次的交換,以獲得多個新增分配結果。
作為本發明實施例的較佳示例三,所述步驟203可以包括:
子步驟S23,隨機選擇一個應用並對所選擇的應用歸屬的服務集群進行修改,獲得多個新增分配結果。
可以在任意一個服務集群中,隨機選擇一個應用,並將選擇的應用分配至其他服務集群,以獲得新增分配結果。同樣地,可以反復多次隨機選擇應用並重新分配應用至其他服務集群,以獲得多個新增分配結果。
步驟204,計算所述初始分配結果和所述新增分配結 果各自對所述服務集群的資源消耗量。
作為本發明實施例的較佳示例,所述步驟204可以包括:
子步驟S31,計算所述初始分配結果和所述新增分配結果各自所需的集群購置成本。
可以針對初始分配結果和新增分配結果,計算各個分配結果所需的集群購置成本。
和/或,子步驟S32,計算所述初始分配結果和所述新增分配結果中各個應用跨集群的帶寬消耗成本;加總各個應用的帶寬消耗成本,得到所述初始分配結果和所述新增分配結果的總帶寬消耗成本。
可以針對初始分配結果和多個新增的分配結果,計算各個分配結果中,各個應用之間跨集群交互資料時所對服務集群的帶寬消耗成本。將各個應用的帶寬消耗成本加總,分別得到各個分配結果的總帶寬消耗成本。
在實際應用中,上述子步驟S21和步驟204可以利用模擬退火演算法(Simulated Annealing,SA),實現獲得新增分配結果,並計算各個新增分配結果對服務集群的資源消耗量,以最終獲得最優分配結果的處理。模擬退火演算法是一種通用機率演算法,通常用於在一個較大的搜索空間內計算最優結果。
具體而言,模擬退火演算法中的初始解狀態S的概念可以用來表示初始分配結果,亦即,迭代計算的起點;S′可以表示新增分配結果。每一次的隨機更換應用歸屬 的服務集群而獲得新增分配結果,即產生新解S’,並累計迭代次數一次。透過計算公式△t′=C(S′)-C(S)計算資源消耗量的增量;其中,C(S)為表示分配結果的資源消耗量的評價函數,△t′為該次迭代計算得到的資源消耗量增量。
當△t′小於0,即新增分配結果的資源消耗量小於之前的分配結果,可以接受S′作為新的目前解。重複隨機更換應用歸屬的服務集群獲得新增分配結果的步驟,以對新增分配結果的資源消耗量增量進行迭代計算,滿足終止條件後則將終止迭代計算並將目前解作為最優解,即最優的分配結果。終止條件可以為連續N個新解均沒有被接受,也可以為新增結果無法滿足約束條件,還可以是獲得足夠多的被接受的目前解,目前解的數量應盡可能大,以確保後續可以獲得最優解。當然,本領域技術人員也可以根據實際情況來設定目前解的數量。
在實際應用中,上述子步驟S22、S23和步驟204可以利用遺傳演算法(Genetic Algorithm,GA),實現獲得新增分配結果並計算各個新增分配結果對服務集群的資源消耗量,以最終獲得最優分配結果的處理。遺傳演算法是借鑒生物界的進化規律演化而來的隨機搜索方法。
具體而言,可以將各個應用作為染色體進行編碼,將M個應用從0-M編號,N個服務集群從0-N編號,得到一個M維的染色體向量,每一維代表一個應用,對應取值為[0,N),表示該應用目前分配的集群索引,即該應用所 屬的服務集群編號。
可以設定進化代數t=0,設定最大進化代數T,隨機產生M個個體的集合作為初始群體P(0),即初始分配結果。計算初始群體P(0)中的適應度,適應度可以透過計算該分配結果所需資源消耗量的倒數而得到。分配結果所需資源消耗量越大,表示適應度越低,反之亦然。
在實際應用中,評價函數和適應度均為分配結果所需資源消耗量的表示方式,本領域技術人員可以根據實際情況而任意選用,例如,在利用遺傳演算法獲得新增分配結果時,可以用評價函數表示分配結果所需資源消耗量;在利用模擬退火演算法獲得新增分配結果時,也可以用適應度表示分配結果所需資源消耗量。
針對於上述的子步驟S22,利用遺傳演算法架構來實現獲得新增分配結果的具體處理中,可以針對染色體而進行交叉運算,將交叉運算元作用於群體。具體而言,可以在初始群體P(0)的染色體中隨機選取兩個染色體,在滿足約束條件的前提下相互交互取值,亦即,對兩個應用歸屬的服務集群進行交換,獲得新增分配結果。
或者,針對於上述的子步驟S23,利用遺傳演算法架構來實現獲得新增分配的具體處理中,可以針對染色體而進行變異運算,將變異運算元作用於群體,亦即,對群體中的個體串的某些基因座上的基因值作變動。具體而言,可以在初始群體P(0)的染色體中隨機選取一個染色體,在滿足約束條件的前提下修改索引值,亦即,隨機選 擇一個應用並對所選擇的應用歸屬的服務集群進行修改,獲得新增分配結果。
針對於上述的步驟204,亦即,針對交叉運算和/或變異運算後,從群體P(t)進化到下一代群體P(t+1),利用遺傳演算法架構來計算資源消耗量的具體處理中,可以計算群體P(t+1)的適應度。當多次進化,進化代數t累計到最大進化代數T後則終止迭代計算,將進化過程中具有最大適應度的群體作為最優解,即最優分配結果。
由於每一步交叉運算和變異運算都會對進化是否滿足約束條件進行檢查,因此整個進化過程均可得到有效的分配結果,確保了進化的合理性。
需要說明的是,上述子步驟S21-子步驟S23的執行順序僅為示例,在實際應用中,可以根據上述提供的一種或多種方式按照不同次序的組合以獲得多個新增的分配結果。例如先執行子步驟S21,再執行子步驟S23,最後執行子步驟S22。
需要說明的是,在實際應用中,可以採用多種方式來結合模擬退火演算法和遺傳演算法以計算獲得最優分配結果。例如,可以先利用模擬退火演算法獲得大量的分配結果,然後利用遺傳演算法控制分配結果的最佳化方向,以便接近最優分配結果;或者也可以先利用遺傳演算法中的變異運算,獲得若干新增分配結果,再基於得到的若干分配結果,利用模擬退火演算法獲得大量的分配結果,最後再利用遺傳演算法中的交叉運算而獲得最優分配結果。
當結合模擬退火演算法和遺傳演算法獲得最優分配結果時,兩種演算法所對應計算的資源消耗量可以為相同種類的資源的消耗,也可以不同。例如,模擬退火演算法所計算的資源消耗量針對於集群購置成本的消耗,而遺傳演算法所計算的是帶寬成本的消耗。
此外,除了使用遺傳演算法來獲得最優分配結果,本領域技術也可以採用其他的演算法來獲得最優分配結果,例如蟻群演算法、粒子群演算法等。
步驟205,針對目前獲得的新增分配結果,若所述目前獲得的新增分配結果的資源消耗量小於所述初始分配結果的資源消耗量,則將所述目前獲得的新增分配結果作為目前最優分配結果,並與下一個新增分配結果進行比較,直至獲得最優分配結果為止。
針對於目前獲得的多個新增分配結果,可以將目前獲得的新增分配結果與初始分配結果的資源消耗量進行比較。若目前獲得的新增分配結果的資源消耗量小於初始分配結果的資源消耗量,則將目前獲得的新增分配結果作為目前最優分配結果,反之則繼續將下一新增分配結果與初始分配結果的資源消耗量進行比較。針對目前最優分配結果,可以與下一個新增分配結果進行比較,反復進行比較並確定目前最優分配結果,直至獲得資源消耗量最小的分配結果為止,將其作為最優分配結果。或者,針對出現了新增分配結果的集群購置成本大於初始分配結果的資源消耗量的比較結果的出現次數進行統計,當出現的次數超出 預設次數,則將候選分配結果中資源消耗量最小的分配結果作為最優分配結果。
根據本發明實施例,透過節點網路圖而得到初始分配結果,並進一步透過模擬退火演算法和/或遺傳演算法而得到最優分配結果,從而提升了應用歸屬服務集群分配的效率。而且,所得到的分配方案更接近最優方案,節省了分散式系統部署和運行的成本。
而且,本發明實施例可以針對動態變化的分散式系統而自動確定出最優分配結果,無須人工進行多次分配,進一步提升了應用歸屬服務集群的分配效率。
需要說明的是,對於方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發明實施例並不受所描述的動作順序的限制,因為依據本發明實施例,某些步驟可以採用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬於較佳實施例,所涉及的動作並不一定是本發明實施例所必須的。
參照圖3,示出了本發明的一種應用歸屬服務集群的分配裝置實施例一的結構方塊圖,具體可以包括如下模組:應用初始分配模組301,用以將多個應用分配至多個服務集群,獲得初始分配結果。
應用多次更換模組302,用以多次更換所述應用歸屬的服務集群,獲得多個新增分配結果。
資源消耗量計算模組303,用以計算所述初始分配結果和所述新增分配結果各自對所述服務集群的資源消耗量。
最優分配結果選擇模組304,用以選擇資源消耗量最小的分配結果作為最優分配結果。
根據本發明實施例,基於初始分配結果而進行應用歸屬的服務集群的多次更換處理,以獲得多個新增分配結果,透過對多個新增分配結果而對服務集群的資源消耗量的計算和比較,由此確定最優分配結果,從而提升了應用歸屬服務集群的分配效率,同時確保了得到的分配方案可以有效地節省服務集群的資源消耗成本。
而且,本發明實施例可以針對動態變化的分散式系統而自動確定出最優分配結果,無須人工進行多次分配,進一步提升了應用歸屬服務集群的分配效率。
參照圖4,示出了本發明的一種應用歸屬服務集群的分配裝置實施例二的結構方塊圖,具體可以包括如下模組:服務集群排序模組401,用以按照所述服務集群的至少一種負載性能,對多個服務集群進行排序。
節點網路圖建構模組402,用以以所述應用為節點,以具備資料交換的兩個應用為相鄰節點,建構包括多個應用的節點網路圖,所述關聯權重為連接兩個應用的邊的邊權重。
應用初始分配模組403,用以將多個應用分配至多個 服務集群,獲得初始分配結果。
應用多次更換模組404,用以多次更換所述應用歸屬的服務集群,獲得多個新增分配結果。
資源消耗量計算模組405,用以計算所述初始分配結果和所述新增分配結果各自對所述服務集群的資源消耗量。
最優分配結果選擇模組406,用以選擇資源消耗量最小的分配結果作為最優分配結果。
作為本發明實施例的較佳示例,所述應用初始分配模組403可以具體用以:按照排序針對各服務集群進行應用分配,直至所有應用均分配至某個服務集群為止;其中,針對排序在後的服務集群,在排序在前的服務集群分配後剩餘的應用中進行應用分配。
作為本發明實施例的較佳示例,所述裝置可以還包括:關聯權重計算模組,用以計算任意兩個應用之間的關聯權重。
所述應用初始分配模組403可以包括:關聯應用分配子模組,用以從目前可選的多個應用中,選擇關聯權重最大的兩個目標應用,並選擇與所述目標應用之一的關聯權重排序靠前的多個關聯應用,分配至所述服務集群。
作為本發明實施例的較佳示例,所述裝置可以還包 括:應用排序模組,用以若至少一個應用未分配至所述服務集群,則將未分配的應用按照所需資源消耗量進行排序。
未分配應用隨機分配模組,用以按照排序逐個將未分配的應用隨機分配至某一服務集群。
作為本發明實施例的較佳示例一,所述關聯應用分配子模組可以包括:目標邊查找子單元,用以查找所述節點網路圖中邊權重最大的目標邊。
作為本發明實施例的較佳示例二,所述關聯應用分配子模組可以包括:廣度優先搜索子單元,用以在包含所述目標邊的子圖中,以所述目標邊的兩個目標節點為起點,進行廣度優先搜索。
關聯節點選擇子單元,用以從搜索的多個關聯節點中,按照與所述目標節點的邊權重從大到小,在未超出所述服務集群的負載性能的條件下,選擇最多數量的關聯節點。
作為本發明實施例的較佳示例,所述裝置可以還包括:新增分配結果確定模組,用以確定更換後的新增分配結果未超出各服務集群的負載性能。
作為本發明實施例的較佳示例,所述應用多次更換模 組404可以包括:應用交換子模組,用以在隨機選擇的兩個服務集群中,分別隨機選擇一個應用進行交換,直至獲得多個新增分配結果為止。
作為本發明實施例的較佳示例,所述應用多次更換模組404可以包括:服務集群交互子模組,用以針對目前獲得的分配結果,依次選擇兩個分配結果,隨機從兩個分配結果中選擇兩個應用,並對選中的兩個應用所歸屬的服務集群進行交換,獲得多個新增分配結果。
服務集群修改子模組,用以隨機選擇一個應用並對所選擇的應用歸屬的服務集群進行修改,獲得多個新增分配結果。
作為本發明實施例的較佳示例,所述裝置可以還包括:分配結果篩選模組,用以篩選資源消耗量從小到大排序靠前的多個分配結果。
作為本發明實施例的較佳示例,所述資源消耗量計算模組405可以包括:集群購置成本計算子模組,用以計算所述初始分配結果和所述新增分配結果各自所需的集群購置成本。
帶寬消耗成本計算子模組,用以計算所述初始分配結果和所述新增分配結果中各個應用跨集群的帶寬消耗成本;加總各個應用的帶寬消耗成本,得到所述初始分配結 果和所述新增分配結果的總帶寬消耗成本。
作為本發明實施例的較佳示例,所述最優分配結果選擇模組406可以包括:分配結果比較子模組,用以針對目前獲得的新增分配結果,若所述目前獲得的新增分配結果的資源消耗量小於所述初始分配結果的資源消耗量,則將所述目前獲得的新增分配結果作為目前最優分配結果,並與下一個新增分配結果進行比較,直至獲得最優分配結果為止。
根據本發明實施例,透過節點網路圖而得到初始分配結果,並進一步透過模擬退火演算法和/或遺傳演算法而得到最優分配結果,從而提升了應用歸屬服務集群分配的效率。而且,所得到的分配方案更接近最優方案,節省了分散式系統部署和運行的成本。
而且,本發明實施例可以針對動態變化的分散式系統而自動確定出最優分配結果,無須人工進行多次分配,進一步提升了應用歸屬服務集群的分配效率。
對於裝置實施例而言,由於其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
本說明書中的各個實施例均採用漸進的方式來描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
本領域內的技術人員應明白,本發明實施例的實施例可提供為方法、裝置、或電腦程式產品。因此,本發明實 施例可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體態樣的實施例的形式。而且,本發明實施例可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
在一個典型的配置中,所述電腦設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。記憶體可能包括電腦可讀媒體中的非永久性記憶體,隨機存取記憶體(RAM)和/或非易失性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀媒體的示例。電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可編程唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能影音光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁碟片儲存或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備訪問的資訊。按照本文中的界定,電腦可讀媒體不包括暫態性的電腦可讀媒體(transitory media),如調變的資料信號和載波。
本發明實施例是參照根據本發明實施例的方法、終端設備(系統)、和電腦程式產品的流程圖和/或方塊圖來描述的。應理解可由電腦程式指令實現流程圖和/或方塊圖中的每一個流程和/或方塊、以及流程圖和/或方塊圖中的流程和/或方塊的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其他可編程資料處理終端設備的處理器以產生一個機器,使得透過電腦或其他可編程資料處理終端設備的處理器執行的指令而產生用來實現在流程圖中的一個流程或多個流程和/或方塊圖中的一個方塊或多個方塊中指定的功能的裝置。
這些電腦程式指令也可被儲存在能引導電腦或其他可編程資料處理終端設備以特定方式操作的電腦可讀記憶體中,使得儲存在該電腦可讀記憶體中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖中的一個流程或多個流程和/或方塊圖中的一個方塊或多個方塊中指定的功能。
這些電腦程式指令也可被裝載到電腦或其他可編程資料處理終端設備上,使得在電腦或其他可編程終端設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其他可編程終端設備上執行的指令提供用於實現在流程圖中的一個流程或多個流程和/或方塊圖中的一個方塊或多個方塊中指定的功能的步驟。
儘管已描述了本發明實施例的較佳實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實 施例做出另外的變更和修改。所以,所附申請專利範圍意欲解釋為包括較佳實施例以及落入本發明實施例範圍的所有變更和修改。
最後,還需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在有任何這種實際的關係或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個......”限定的要素,並不排除在包括所述要素的過程、方法、物品或者終端設備中還存在有另外的相同要素。
以上對本發明所提供的一種應用歸屬服務集群的分配方法和一種應用歸屬服務集群的分配裝置,進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用來幫助理解本發明的方法及其核心思想;同時,對於本領域的一般技術人員,依據本發明的思想,在具體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。

Claims (24)

  1. 一種應用歸屬服務集群的分配方法,其特徵在於,包括:將多個應用分配至多個服務集群,獲得初始分配結果;多次更換該應用歸屬的服務集群,獲得多個新增分配結果;計算該初始分配結果和該新增分配結果各自對該服務集群的資源消耗量;以及選擇資源消耗量最小的分配結果作為最優分配結果,其中,該將多個應用分配至多個服務集群為:按照排序針對各服務集群進行應用分配,直至所有應用均分配至某個服務集群為止,其中,針對排序在後的服務集群,在排序在前的服務集群分配後剩餘的應用中進行應用分配;在該按照排序針對各服務集群進行應用分配之前,該方法還包括:計算任意兩個應用之間的關聯權重;該按照排序針對各服務集群進行應用分配包括:從目前可選的多個應用中,選擇關聯權重最大的兩個目標應用,並選擇與該目標應用之一的關聯權重排序靠前的多個關聯應用,分配至該服務集群。
  2. 如請求項1所述的方法,其中,在該將多個應用分配至多個服務集群之前,該方法還包括:按照該服務集群的至少一種負載性能,對多個服務集群進行排序。
  3. 如請求項1所述的方法,其中,該按照排序針對各服務集群進行應用分配還包括:若至少一個應用未分配至該服務集群,則將未分配的應用按照所需資源消耗量進行排序;以及按照排序逐個將未分配的應用隨機分配至某一服務集群。
  4. 如請求項1所述的方法,其中,在該將多個應用分配至多個服務集群之前,該方法還包括:以該應用為節點,以具備資料交換的兩個應用為相鄰節點,建構包括多個應用的節點網路圖,該關聯權重為連接兩個應用的邊的邊權重。
  5. 如請求項4所述的方法,其中,該選擇關聯權重最大的兩個目標應用包括:查找該節點網路圖中邊權重最大的目標邊。
  6. 如請求項4所述的方法,其中,該選擇與該目標應用之一的關聯權重排序靠前的多個關聯應用包括: 在包含該目標邊的子圖中,以該目標邊的兩個目標節點為起點,進行廣度優先搜索;以及從搜索的多個關聯節點中,按照與該目標節點的邊權重從大到小,在未超出該服務集群的負載性能的條件下,選擇最多數量的關聯節點。
  7. 如請求項1所述的方法,其中,在該多次更換該應用歸屬的服務集群,獲得多個新增分配結果之後,該方法還包括:確定更換後的新增分配結果未超出各服務集群的負載性能。
  8. 如請求項1所述的方法,其中,該多次更換該應用歸屬的服務集群,獲得多個新增分配結果包括:在隨機選擇的兩個服務集群中,分別隨機選擇一個應用進行交換,直至獲得多個新增分配結果為止。
  9. 如請求項8所述的方法,其中,該多次更換該應用歸屬的服務集群,獲得多個新增分配結果還包括:針對目前獲得的分配結果,依次選擇兩個分配結果,隨機從兩個分配結果中選擇兩個應用,並對選擇的兩個應用所歸屬的服務集群進行交換,獲得多個新增分配結果;和/或隨機選擇一個應用並對所選擇的應用歸屬的服務集群 進行修改,獲得多個新增分配結果。
  10. 如請求項9所述的方法,其中,在該在隨機選擇的兩個服務集群中,分別隨機選擇一個應用進行交換,直至獲得多個新增分配結果為止之後,該方法還包括:篩選資源消耗量從小到大排序靠前的多個分配結果。
  11. 如請求項9所述的方法,其中,該計算該初始分配結果和該新增分配結果各自對該服務集群的資源消耗量包括:計算該初始分配結果和該新增分配結果各自所需的集群購置成本;和/或計算該初始分配結果和該新增分配結果中各個應用跨集群的帶寬消耗成本;加總各個應用的帶寬消耗成本,得到該初始分配結果和該新增分配結果的總帶寬消耗成本。
  12. 如請求項1所述的方法,其中,該選擇資源消耗量最小的分配結果作為最優分配結果包括:針對目前獲得的新增分配結果,若該目前獲得的新增分配結果的資源消耗量小於該初始分配結果的資源消耗量,則將該目前獲得的新增分配結果作為目前最優分配結果,並與下一個新增分配結果進行比較,直至獲得最優分配結果為止。
  13. 一種應用歸屬服務集群的分配裝置,其特徵在於,包括:應用初始分配模組,用以將多個應用分配至多個服務集群,獲得初始分配結果;應用多次更換模組,用以多次更換該應用歸屬的服務集群,獲得多個新增分配結果;資源消耗量計算模組,用以計算該初始分配結果和該新增分配結果各自對該服務集群的資源消耗量;以及最優分配結果選擇模組,用以選擇資源消耗量最小的分配結果作為最優分配結果,其中,該應用初始分配模組具體用以:按照排序針對各服務集群進行應用分配,直至所有應用均分配至某個服務集群為止,其中,針對排序在後的服務集群,在排序在前的服務集群分配後剩餘的應用中進行應用分配;其中,該裝置還包括:關聯權重計算模組,用以計算任意兩個應用之間的關聯權重;該應用初始分配模組包括:關聯應用分配子模組,用以從目前可選的多個應用中,選擇關聯權重最大的兩個目標應用,並選擇與該目標應用之一的關聯權重排序靠前的多個關聯應用,分配至該服務集群。
  14. 如請求項13所述的裝置,其中,該裝置還包括:服務集群排序模組,用以按照該服務集群的至少一種負載性能,對多個服務集群進行排序。
  15. 如請求項13所述的裝置,其中,該裝置還包括:應用排序模組,用以若至少一個應用未分配至該服務集群,則將未分配的應用按照所需資源消耗量進行排序;未分配應用隨機分配模組,用以按照排序逐個將未分配的應用隨機分配至某一服務集群。
  16. 如請求項13所述的裝置,其中,該裝置還包括:節點網路圖建構模組,用以以該應用為節點,以具備資料交換的兩個應用為相鄰節點,建構包括多個應用的節點網路圖,該關聯權重為連接兩個應用的邊的邊權重。
  17. 如請求項16所述的裝置,其中,該關聯應用分配子模組包括:目標邊查找子單元,用以查找該節點網路圖中邊權重最大的目標邊。
  18. 如請求項16所述的裝置,其中,該關聯應用分配子模組包括:廣度優先搜索子單元,用以在包含該目標邊的子圖中,以該目標邊的兩個目標節點為起點,進行廣度優先搜 索;以及關聯節點選擇子單元,用以從搜索的多個關聯節點中,按照與該目標節點的邊權重從大到小,在未超出該服務集群的負載性能的條件下,選擇最多數量的關聯節點。
  19. 如請求項13所述的裝置,其中,該裝置還包括:新增分配結果確定模組,用以確定更換後的新增分配結果未超出各服務集群的負載性能。
  20. 如請求項13所述的裝置,其中,該應用多次更換模組包括:應用交換子模組,用以在隨機選擇的兩個服務集群中,分別隨機選擇一個應用進行交換,直至獲得多個新增分配結果為止。
  21. 如請求項20所述的裝置,其中,該應用多次更換模組包括:服務集群交互子模組,用以針對目前獲得的分配結果,依次選擇兩個分配結果,隨機從兩個分配結果中選擇兩個應用,並對選中的兩個應用所歸屬的服務集群進行交換,獲得多個新增分配結果;以及服務集群修改子模組,用以隨機選擇一個應用並對所選擇的應用歸屬的服務集群進行修改,獲得多個新增分配結果。
  22. 如請求項21所述的裝置,其中,該裝置還包括:分配結果篩選模組,用以篩選資源消耗量從小到大排序靠前的多個分配結果。
  23. 如請求項21所述的裝置,其中,該資源消耗量計算模組包括:集群購置成本計算子模組,用以計算該初始分配結果和該新增分配結果各自所需的集群購置成本;以及帶寬消耗成本計算子模組,用以計算該初始分配結果和該新增分配結果中各個應用跨集群的帶寬消耗成本;加總各個應用的帶寬消耗成本,得到該初始分配結果和該新增分配結果的總帶寬消耗成本。
  24. 如請求項13所述的裝置,其中,該最優分配結果選擇模組包括:分配結果比較子模組,用以針對目前獲得的新增分配結果,若該目前獲得的新增分配結果的資源消耗量小於該初始分配結果的資源消耗量,則將該目前獲得的新增分配結果作為目前最優分配結果,並與下一個新增分配結果進行比較,直至獲得最優分配結果為止。
TW106104645A 2016-03-02 2017-02-13 應用歸屬服務集群的分配方法和裝置 TWI740895B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610119120.2A CN107155215B (zh) 2016-03-02 2016-03-02 一种应用归属服务集群的分配方法和装置
CN201610119120.2 2016-03-02

Publications (2)

Publication Number Publication Date
TW201734831A TW201734831A (zh) 2017-10-01
TWI740895B true TWI740895B (zh) 2021-10-01

Family

ID=59742499

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106104645A TWI740895B (zh) 2016-03-02 2017-02-13 應用歸屬服務集群的分配方法和裝置

Country Status (3)

Country Link
CN (1) CN107155215B (zh)
TW (1) TWI740895B (zh)
WO (1) WO2017148296A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115134369B (zh) * 2021-03-26 2024-01-19 北京金山云网络技术有限公司 一种cdn节点分配方法、装置、电子设备及存储介质
CN114466022B (zh) * 2021-12-31 2023-07-21 苏州浪潮智能科技有限公司 一种集群中获取服务器种子节点的方法、装置及介质
CN114564954B (zh) * 2022-03-01 2024-04-12 天元大数据信用管理有限公司 一种维护指标唯一性的指标管理方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103327072A (zh) * 2013-05-22 2013-09-25 中国科学院微电子研究所 一种集群负载均衡的方法及其系统
CN103491151A (zh) * 2013-09-13 2014-01-01 中安消技术有限公司 一种云计算资源的调度方法、装置及云计算平台
TW201424305A (zh) * 2012-11-01 2014-06-16 Microsoft Corp 於雲端中之cdn負載平衡
US20150026342A1 (en) * 2013-07-16 2015-01-22 Hitachi, Ltd Virtual resource management tool for cloud computing service
CN104461740A (zh) * 2014-12-12 2015-03-25 国家电网公司 一种跨域集群计算资源聚合和分配的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120072250A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 동적 부하 분산 시스템 및 방법
CN103473140A (zh) * 2013-10-09 2013-12-25 浪潮(北京)电子信息产业有限公司 一种生命科学应用的集群分配方法、软件安装方法及装置
KR20150044113A (ko) * 2013-10-16 2015-04-24 한국전자통신연구원 멀티 태스크 할당 장치 및 그 방법
CN105208133B (zh) * 2015-10-20 2018-05-25 上海斐讯数据通信技术有限公司 一种服务器、负载均衡器以及服务器负载均衡方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201424305A (zh) * 2012-11-01 2014-06-16 Microsoft Corp 於雲端中之cdn負載平衡
CN103327072A (zh) * 2013-05-22 2013-09-25 中国科学院微电子研究所 一种集群负载均衡的方法及其系统
US20150026342A1 (en) * 2013-07-16 2015-01-22 Hitachi, Ltd Virtual resource management tool for cloud computing service
CN103491151A (zh) * 2013-09-13 2014-01-01 中安消技术有限公司 一种云计算资源的调度方法、装置及云计算平台
CN104461740A (zh) * 2014-12-12 2015-03-25 国家电网公司 一种跨域集群计算资源聚合和分配的方法

Also Published As

Publication number Publication date
CN107155215B (zh) 2020-07-21
WO2017148296A1 (zh) 2017-09-08
CN107155215A (zh) 2017-09-12
TW201734831A (zh) 2017-10-01

Similar Documents

Publication Publication Date Title
CN105446979B (zh) 数据挖掘方法和节点
Buluç et al. Recent advances in graph partitioning
CN108664330B (zh) 一种基于变邻域搜索策略的云资源分配方法
Talbi et al. Multi‐objective optimization using metaheuristics: non‐standard algorithms
CN102073700B (zh) 一种复杂网络社团的发现方法
Schulz High quality graph partitioning
TWI740895B (zh) 應用歸屬服務集群的分配方法和裝置
CN103179052A (zh) 一种基于接近度中心性的虚拟资源分配方法及系统
CN106202092A (zh) 数据处理的方法及系统
CN111309440B (zh) 一种多类型gpu的管理调度的方法和设备
Deng et al. A data and task co-scheduling algorithm for scientific cloud workflows
Xhafa A hybrid evolutionary heuristic for job scheduling on computational grids
CN116662010B (zh) 基于分布式系统环境下的动态资源分配方法及系统
Yin et al. An improved genetic algorithm for task scheduling in cloud computing
He et al. Web service composition optimization based on improved artificial bee colony algorithm
Gu et al. A multi-objective fog computing task scheduling strategy based on ant colony algorithm
CN115220916B (zh) 视频智能分析平台的自动算力调度方法、装置及系统
CN107291539B (zh) 基于资源重要程度的集群程序调度方法
CN108846480B (zh) 一种基于遗传算法的多规格一维套料方法及装置
CN117271101B (zh) 一种算子融合方法、装置、电子设备及存储介质
Liu et al. A load-balancing approach based on modified K-ELM and NSGA-II in a heterogeneous cloud environment
CN110189230B (zh) 一种动态分区的解析化模型的构建方法
CN113377488A (zh) 一种资源迁移的方法、系统及设备
Portaluri et al. Multi objective virtual machine allocation in cloud data centers
CN115509715A (zh) 一种分布式任务调度方法、装置和电子设备