新四季網

在雲計算系統中部署多個進程的方法、裝置、設備及介質與流程

2024-04-15 13:44:05 2



1.本發明涉及雲計算技術領域,具體涉及一種雲計算系統中部署多個進程的方法、裝置、設備及介質。


背景技術:

2.linux容器(container)技術的誕生解決了it世界裡「貨櫃運輸」的問題。linux container(簡稱lxc)是一種內核輕量級的作業系統層虛擬化技術。linux容器主要由namespace和cgroup兩大機制來保證實現,其中namespace提供了一種內核級別隔離系統資源的方法,通過將系統的全局資源放在不同的namespace中,來實現資源隔離的目的。不同namespace的程序,可以享有一份獨立的系統資源。目前linux中提供了六類系統資源的隔離機制,分別是:1)mount:隔離文件系統掛載點;2)uts:隔離主機名和域名信息;3)ipc:隔離進程間通信;4)pid:隔離進程的id;5)network:隔離網絡資源;6)user:隔離用戶和用戶組的id。cgroups全稱control groups,是linux內核提供的物理資源隔離機制,通過這種機制,可以實現對linux進程或者進程組的資源限制、隔離和統計功能。比如進程組使用cpu/mem的限制,進程組的優先級控制,進程組的掛起和恢復等。cgroup是於2.6內核由google公司主導引入的,它是linux內核實現資源虛擬化的技術基石,lxc和docker容器所用到的資源隔離技術正是cgroup。
3.容器技術相較於傳統的虛擬化(虛擬機)技術,在硬體抽象層虛擬化hypervisor技術上,創建環境和部署應用都較為繁瑣,而且應用的移植性也很差。比如想要把vmware裡的虛擬機遷移到red hat kvm裡就需要做鏡像格式的轉換,而依託於容器技術就十分簡單,可以便捷地將dokcer應用遷移至任意的物理機節點。容器技術主要具有極其輕量、秒級部署、易於移植以及彈性伸縮的特點。
4.在2015年,由google,docker、coreos、ibm、微軟、紅帽等廠商聯合發起的oci(open container initiative)組織成立了,並於2016年4月推出了第一個開放容器標準。標準主要包括runtime運行時標準和image鏡像標準。
5.容器運行時,會根據處理器數量等離散資源來評估運行時所需資源。linux和docker中使用的默認調度程序是cfs(completely fair scheduler),可視為一種完全公平調度程序,cfs不區分具體的cpu算力消耗型進程,還是io消耗型進程,統一採用紅黑樹算法來管理所有的調度實體sched_entity,算法效率為o(log(n))。容器運行依託於cgroup子系統調度,cpu可以調整以支持相對最少的資源以及用於限制進程使用比預置資源更多的資源上添加強制措施。容器運行時,資源限制包括:cpu、mem、及擴展的資源類型nvidia-gpu-device、vastai-npu-device等。
6.pod是可以在k8s(kubernetes)或k3s中創建和管理的、最小的可部署的計算單元。pod可以是一個或者一組容器,這些容器共享存儲、網絡、以及怎樣運行這些容器的聲明。pod中的內容總是並置的並且一同調度,在共享的上下文中運行。pod所建模的是特定於應用的「邏輯主機」,其中包含一個或多個應用容器,這些容器相對緊密地耦合在一起。在非雲
環境中,在相同的物理機或虛擬機上運行的應用類似於在同一邏輯主機上運行的雲應用。除了應用容器,pod還可以包含在pod啟動期間運行的init容器。
7.k8s集群的調度策略包括限制範圍和資源配額。默認情況下,kubernetes集群上的容器運行使用的計算資源沒有限制。使用資源配額,集群管理員可以以名字空間為單位,限制其資源的使用與創建。在命名空間中,一個pod或容器最多能夠使用命名空間的資源配額所定義的cpu和內存用量。limitrange是在命名空間內限制資源分配(給多個pod或container)的策略對象。一個limitrange(限制範圍)對象提供的限制能夠做到:
8.i.在一個命名空間中實施對每個pod或容器最小和最大的資源使用量的限制。
9.ii.在一個命名空間中實施對每個persistentvolumeclaim能申請的最小和最大的存儲空間大小的限制。
10.iii.在一個命名空間中實施對一種資源的申請值和限制值的比值的控制。
11.iv.設置一個命名空間中對計算資源的默認申請/限制值,並且自動的在運行時注入到多個容器中。
12.資源配額通過resourcequota對象來定義,對每個命名空間的資源消耗總量提供限制。它可以限制命名空間中某種類型的對象的總數目上限,也可以限制命名空間中的pod可以使用的計算資源的總上限。資源配額的工作方式如下:
13.i.不同的團隊可以在不同的命名空間下工作。這可以通過rbac強制執行。
14.ii.集群管理員可以為每個命名空間創建一個或多個resourcequota對象。
15.iii.當用戶在命名空間下創建資源(如pod、service等)時,kubernetes的配額系統會跟蹤集群的資源使用情況,以確保使用的資源用量不超過resourcequota中定義的硬性資源限額。
16.iv.如果資源創建或者更新請求違反了配額約束,那麼該請求會報錯(http 403forbidden),並在消息中給出有可能違反的約束。
17.v.如果命名空間下的計算資源(如cpu和memory)的配額被啟用,則用戶必須為這些資源設定請求值(request)和約束值(limit),否則配額系統將拒絕pod的創建。提示:可使用limitranger準入控制器來為沒有設置計算資源需求的pod設置默認值。
18.k8s中的調度算法就是給pod進程分配合適的節點,具體分預選和優選兩步。其中預選是指k8s會默認註冊一堆預選算法,只有某個節點通過所有預選算法成功運行pod進程,那麼這個節點才能通過預選,進行下一步優選,這樣經過預選之後會淘汰一大批節點。接下來的優選就是優中選優,首先讓每個節點通過所有優選算法,得到一個加權分,最後取最高分,即為最優節點,也就是最終運行pod進程的節點。
19.然而,現有的調度策略只針對單pod進程,且調度預選和優選策略的約束配置僅有cpu和memory,雲邊資源協同利用及最優的部署節點鏈路選擇,往往需要通過人工指定不同的鏡像放到邊端或者雲端,無法達到高效地部署及最大化資源利用率。
20.因此,需要提出一種能夠在雲計算系統中優化部署多個進程的方法,以優化計算資源的利用率。


技術實現要素:

21.本技術提供一種在雲計算系統中部署多個進程的方法、裝置、設備及介質。
22.根據本技術的一方面,提供了一種在雲計算系統中部署多個進程的方法,雲計算系統包括多個雲端節點和多個邊端節點,多個進程包括必須在邊端節點上運行的進程集合e以及可在雲端節點上運行的進程集合c,該方法包括:
23.s1:計算初始狀態下的鏈路總耗時,在初始狀態下進程集合c中的全部進程被指定為在雲端節點運行;
24.s2:以初始狀態為種子,從進程集合c中被指定為在雲端節點運行的進程中隨機選取至少一個進程並將其指定為在邊端節點運行,生成變異狀態;
25.s3:計算變異狀態的鏈路總耗時;
26.s4:循環執行多輪步驟s2和s3,得到多個變異狀態下分別對應的多個鏈路總耗時;
27.s5:從多個變異狀態下的多個鏈路總耗時中選取鏈路總耗時最小的變異狀態作為初始狀態;
28.s6:循環執行多輪步驟s2至s5;
29.s7:根據最後一次執行步驟s5所獲得的鏈路總耗時最小的變異狀態部署多個進程。
30.根據本技術一實施例,多個進程為k8s或k3s集群中的多個pod,每個pod包括一個或多個容器。
31.根據本技術一實施例,方法進一步包括:
32.s0:根據進程集合c中的進程的資源需求以及邊端節點的資源配額,將進程集合c中的邊端節點上能夠運行的進程標記為可在邊端節點上運行的進程。
33.根據本技術一實施例,步驟s2包括:以初始狀態為種子,從進程集合c中被指定為在雲端節點運行的並且被標記為可在邊端節點上運行的進程中隨機選取至少一個進程並將其指定為在邊端節點運行,生成變異狀態。
34.根據本技術一實施例,步驟s2進一步包括:按照變異狀態部署進程並執行服務分析請求校驗,若未通過則將隨機選取的至少一個進程指定為在雲端節點運行並重新執行步驟s2。
35.根據本技術一實施例,多個進程用於執行至少一個服務。
36.根據本技術一實施例,在步驟s3中,變異狀態的鏈路總耗時為在雲端節點執行在變異狀態下被指定在雲端節點執行的進程並且在邊端節點執行在變異狀態下被指定在雲端節點執行的進程的情況下的鏈路耗時的總和。
37.根據本技術一實施例,在步驟s6中,循環執行多輪步驟s2至s5,直到步驟s5獲得的變異狀態的鏈路總耗時收斂為止。
38.根據本技術的一方面,提供一種在雲計算系統中部署多個進程的裝置,雲計算系統包括多個雲端節點和多個邊端節點,多個進程包括必須在邊端節點上運行的進程集合e以及可在雲端節點上運行的進程集合c,其特徵在於,裝置包括:
39.第一計算模塊,用於計算初始狀態下的鏈路總耗時,在初始狀態下進程集合c中的全部進程被指定為在雲端節點運行;
40.變異模塊,用於以初始狀態為種子,從進程集合c中被指定為在雲端節點運行的進程中隨機選取至少一個進程並將其指定為在邊端節點運行,生成變異狀態;
41.第二計算模塊,用於計算變異狀態的鏈路總耗時;
42.第一循環模塊,用於循環調用變異模塊和第二計算模塊,得到多個變異狀態下分別對應的多個鏈路總耗時;
43.選取模塊,用於從多個變異狀態下的多個鏈路總耗時中選取鏈路總耗時最小的變異狀態作為初始狀態;
44.第二循環模塊,用於循環調用變異模塊、第二計算模塊、第一循環模塊和選取模塊;
45.部署模塊,用於根據第二循環模塊最後一次調用選取模塊所獲得的鏈路總耗時最小的變異狀態部署多個進程。
46.根據本技術一實施例,多個進程為k8s或k3s集群中的多個pod,每個pod包括一個或多個容器。
47.根據本技術一實施例,裝置進一步包括:
48.標記模塊,用於根據進程集合c中的進程的資源需求以及邊端節點的資源配額,將進程集合c中的邊端節點上能夠運行的進程標記為可在邊端節點上運行的進程。
49.根據本技術一實施例,變異模塊用於,以初始狀態為種子,從進程集合c中被指定為在雲端節點運行的並且被標記為可在邊端節點上運行的進程中隨機選取至少一個進程並將其指定為在邊端節點運行,生成變異狀態。
50.根據本技術一實施例,變異模塊包括校驗模塊,用於按照變異狀態部署進程並執行服務分析請求校驗,若未通過則將隨機選取的至少一個進程指定為在雲端節點運行。
51.根據本技術一實施例,多個進程用於執行至少一個服務。
52.根據本技術一實施例,在第二計算模塊中,變異狀態的鏈路總耗時為在雲端節點執行在變異狀態下被指定在雲端節點執行的進程並且在邊端節點執行在變異狀態下被指定在雲端節點執行的進程的情況下的鏈路耗時的總和。
53.根據本技術一實施例,第二循環模塊用於,循環調用變異模塊、第二計算模塊、第一循環模塊和選取模塊,直到選取模塊獲得的變異狀態的鏈路總耗時收斂為止。
54.根據本技術的一方面,提供了一種電子設備,包括:處理器和存儲器,存儲器上存儲有電腦程式,當電腦程式被處理器執行時,使處理器執行以上描述的方法。
55.根據本技術的一方面,提供了一種計算機可讀存儲介質,其上存儲有電腦程式,電腦程式被處理器執行時,使處理器執行以上描述的方法。
56.根據本技術的一方面,提供了一種電腦程式產品,包括電腦程式,該電腦程式被處理器執行時,使處理器執行以上描述的方法。
57.由於本技術的雲計算系統中部署多個進程的方法採用遺傳算法不斷迭代獲得鏈路總耗時最小的鏈路狀態,並且按照鏈路總耗時最小的變異狀態在雲計算系統中部署進程,從而實現了進行在雲計算節點上的優化部署,提高了雲計算系統的資源利用率,進而改善了用戶體驗。
附圖說明
58.附圖用來提供對本技術技術方案的進一步理解,並且構成說明書的一部分,與本技術的實施例一起用於解釋本技術的技術方案,但並不構成對本技術技術方案的限制。
59.圖1是圖示出根據示例性實施例的在雲計算系統中部署多個進程的方法的流程
圖;
60.圖2是圖示出根據示例性實施例的在雲計算系統中部署多個進程的裝置的結構框圖;
61.圖3是圖示出根據示例性實施例的示例性電子設備的框圖。
具體實施方式
62.在本技術中,除非另有說明,否則使用術語「第一」、「第二」等來描述各種要素不意圖限定這些要素的位置關係、時序關係或重要性關係,這種術語只是用於將一個元件與另一元件區分開。在一些示例中,第一要素和第二要素可以指向該要素的同一實例,而在某些情況下,基於上下文的描述,它們也可以指代不同實例。
63.在本技術中對各種示例的描述中所使用的術語只是為了描述特定示例的目的,而並非旨在進行限制。除非上下文另外明確地表明,如果不特意限定要素的數量,則該要素可以是一個也可以是多個。如本文使用的,術語「多個」意指兩個或更多,並且術語「基於」應解釋為「至少部分地基於」。此外,術語「和/或」以及
「……
中的至少一個」涵蓋所列出的項目中的任何一個以及全部可能的組合方式。
64.在雲計算系統的雲邊協同中,一個完整的分析服務可能由一個或多個鏡像進程組成,因此在雲計算系統中部署鏡像進程時,可能會採用以下三種類型的部署方案:
65.1)進程全部部署在邊端節點;
66.2)部分進程部署在邊端節點,部分進程部署在雲端節點;
67.3)進程全部部署在邊端節點。
68.當邊端資源有限時,就需要將部分鏡像進程放到雲端運行。根據本技術實施例的方法可以在用戶無感的情況下,自動評估出進程在雲邊混合部署的鏈路,以達到最佳的進程部署節點選擇,提升用戶體驗最大化集群硬體資源利用率。
69.進程的部署網絡由部署集群、雲端節點與邊端節點構成。節點間可以互相通信。對於任意節點部署的鏡像進程運行對象例如可以是k8s或k3s集群中的服務pod,且部署任意服務pod都有唯一集群內部訪問域名,集群任意節點都能通過該域名訪問到服務。
70.按照服務(例如ai服務)的各個鏡像不在不同的邊端節點部署,可以組成不同的部署鏈路。部署鏈路也是ai服務執行分析任務時的執行順序。根據本技術實施例的方法隨機將雲端部署鏡像進程分發到邊端節點運行,服務通過運行檢查後,統計分析性能數據。然後,對不同節點分發的鏈路進行編譯或者組合,並統計新的性能數據,選取當前最優的鏈路進行下一輪迭代,採用遺傳算法迭代模式,多輪迭代後計算出多種較優部署鏈路,選出最優的部署分發組合鏈路。
71.遺傳算法(簡稱ga)起源於對生物系統所進行的計算機模擬研究,是一種隨機全局搜索優化方法,它模擬了自然選擇和遺傳中發生的複製、交叉和變異等現象,從任一初始種群出發,通過隨機選擇、交叉和變異操作,產生一群更適合環境的個體,使群體進化到搜索空間中越來越好的區域,這樣一代一代不斷繁衍進化,最後收斂到一群最適應環境的個體,從而求得問題的優質解。
72.下面結合附圖詳細描述本技術的示例性實施例。
73.圖1是圖示出根據示例性實施例的在雲計算系統中部署多個進程的方法的流程
圖。雲計算系統包括多個雲端節點和多個邊端節點,多個進程包括必須在邊端節點上運行的進程集合e以及可在雲端節點上運行的進程集合c。如圖1所示,在雲計算系統中部署多個進程的方法包括:
74.步驟s1:計算初始狀態下的鏈路總耗時t0,在初始狀態下進程集合c中的全部進程被指定為在雲端節點運行;
75.步驟s2:以初始狀態為種子,從進程集合c中被指定為在雲端節點運行的進程中隨機選取至少一個進程並將其指定為在邊端節點運行,生成變異狀態;
76.步驟s3:計算變異狀態的鏈路總耗時;
77.步驟s4:循環執行多輪步驟s2和s3,得到多個變異狀態下分別對應的多個鏈路總耗時;
78.步驟s5:從多個變異狀態下的多個鏈路總耗時中選取鏈路總耗時最小的變異狀態;
79.步驟s6:將步驟s5中選取的鏈路總耗時最小的變異狀態設為初始狀態,循環執行多輪步驟s2至s5;
80.步驟s7:根據最後一次執行步驟s5所獲得的鏈路總耗時最小的變異狀態部署多個進程。
81.根據一些實施例,部署的多個進程為k8s或k3s集群中的多個pod,每個pod包括一個或多個容器。多個進程可以用於執行至少一個服務。一個服務(例如ai服務)可以由多個pod組成。使用service可以有效地將一組服務綁定在一起,每個pod生成對應的訪問域名,提供一個統一的訪問入口,無論服務分配到任意節點,service可以將服務轉發到該組服務中的pod上進行處理,保證在集群內部,任意節點間pod服務間是可以綁定的域名互相訪問。對於集群內部的物理機節點,通過k8s(或k3s)api server可以將對應的雲端物理機節點類型標記為:nodetype=cloud,對於邊端物理機節點類型為:nodetype=edge。對進程部署可以指定對應的部署節點類型,如服務要求部署在邊端節點則配置為:nodeselector:nodetype=edge。
82.在步驟s1中,計算初始狀態下的鏈路總耗時,在初始狀態下進程集合c中的全部進程被指定為在雲端節點運行。服務srva包括必須在邊端節點運行的進程集合e以及可部署在雲端或邊端的進程集合c。按照初始的進程部署方案,將進程集合e中的進程部署在邊端,將進程集合c中的進程部署在雲端,啟動服務。按照服務的執行鏈路組合各進程,以完成服務執行的任務。
83.集合e可以表示為e=[e1,e2,...,ei],i表示部署在邊端節點的進程的數量。集合c可以表示為c=[c1,c2,...,cj],j表示可以部署在雲端或邊端的節點進程數量。執行服務srva的鏈路總耗時t
sum
可以表示t
sum
=sum(t
e1
,t
e2
,

,t
ei
,t
c1
,t
c2
,

t
cj
),其中te為執行某個進程的鏈路耗時。
[0084]
在一些實施例中,在雲計算系統中部署多個進程的方法還可以包括在步驟s1之前的步驟s0:根據進程集合c中的進程的資源需求以及邊端節點的資源配額,將進程集合c中的邊端節點上能夠運行的進程標記為可在邊端節點上運行的進程。進程集合c中的進程的部署狀態可以記為m,m=[0,0,...,0],其長度等於集合c中進程的個數,記為j。其中狀態0表示該進程部署在雲端,狀態1表示對應進程部署在邊端。當數組m的初始元素值都為0的時
候,遍歷雲端運行的j個進程,雲端部署的cpu和內存等資源配額,在邊端節點無法滿足部署資源需求時,記錄狀態為
「‑
1」,表示該進程必須部署在雲端。
[0085]
在步驟s2中,以初始狀態為種子,從進程集合c中被指定為在雲端節點運行的進程中隨機選取至少一個進程並將其指定為在邊端節點運行,生成變異狀態。隨機選取的進程的數量可以記為n,n為自然數,那麼此時在雲端節點運行的進程數量減少了n個,而在邊端節點中運行的進程數量增加了n個。
[0086]
根據一些實施例,步驟s2具體包括:以初始狀態為種子,從進程集合c中被指定為在雲端節點運行的並且被標記為可在邊端節點上運行的進程中隨機選取至少一個進程並將其指定為在邊端節點運行,生成變異狀態。例如,對數組m進行多個(例如5個)變異,即每次選取5個進程進行邊雲部署切換,雲切換到邊時狀態值從0變為1,邊切換到雲時狀態值從1變為0,-1狀態不會被選取。在本實施例中,隨機選取的進程是從s0步驟中識別的被標記為狀態0的進程中選取的。事實上,對於被標記為狀態
「‑
1」的進程,邊端節點無法滿足其資源需求,因此不能在邊端節點運行。
[0087]
根據一些實施例,步驟s2進一步包括:按照變異狀態部署進程並執行服務分析請求校驗,若未通過則將隨機選取的至少一個進程指定為在雲端節點運行並重新執行步驟s2。實際上,若服務分析請求校驗不通過,則表明此變異狀態下不能成功執行服務,因此需要退回到變異前的狀態重新選取進程;若服務分析請求校驗通過,則在該變異狀態可以有效部署鏈路。
[0088]
在步驟s3中,計算變異狀態的鏈路總耗時。變異狀態的鏈路總耗時是在邊端節點和雲端節點的每個進程的耗時之和,即在雲端節點執行在變異狀態下被指定在雲端節點執行的進程並且在邊端節點執行在變異狀態下被指定在雲端節點執行的進程的情況下的鏈路耗時的總和。鏈路總耗時是變異狀態對應的部署方案的性能評估指標。
[0089]
在步驟s4中,循環執行多輪步驟s2和s3,得到多個變異狀態下分別對應的多個鏈路總耗時。循環執行步驟s2和s3的輪數可以為兩輪或更多輪。由於每次執行步驟s2時,進程的選取是隨機進行的,因此每次生成的變異狀態是不同的,步驟s3中得到的每個變異狀態下的鏈路總耗時也不同。
[0090]
在步驟s5中,從多個變異狀態下的多個鏈路總耗時中選取鏈路總耗時最小的變異狀態。在步驟s4中得到的多個變異狀態中,鏈路總耗時最小的變異狀態是這些變異狀態中部署方式最優的變異狀態。步驟s5將部署方式最優的變異狀態選取出來,以供後續進一步變異。步驟s中可以選取一個鏈路總耗時最小的變異狀態,也可以選取鏈路總耗時最小的兩個或更多個變異狀態。例如,當步驟s4執行的循環輪數較大,產生的變異狀態的數量較大時,步驟s5中可以選取多個鏈路總耗時最小的變異狀態。
[0091]
在步驟s6中,將步驟s5中選取的鏈路總耗時最小的變異狀態設為初始狀態,循環執行多輪步驟s2至s5。步驟s6實現了遺傳算法中一代一代繁衍進化的過程。每輪循環都使用了上一代最優的變異狀態,以便得到更優的變異狀態。循環執行s2至s5的輪數可以是預先設定的,例如5輪,也可以是在循環過程中自動確定的,即直到步驟s5獲得的變異狀態的鏈路總耗時收斂(即不再降低時)才停止循環執行步驟s2至s5。在算法實際使用過程中,可以適當調整步驟s2至s5的循環輪數,以便能夠快速完成部署鏈路搜索。例如,當設置較大的收斂迭代次數(例如10)時,將會對更多的變異組合部署方案進行評估,能夠儘可能地搜索
更優的邊雲部署方案,但同時也增加了算法迭代時間開銷。
[0092]
步驟s7:根據最後一次執行步驟s5所獲得的鏈路總耗時最小的變異狀態部署多個進程。最後一次執行步驟s5所獲得的最小的鏈路總耗時是全局最優的鏈路耗時,其對應的變異狀態表示全局最優的部署方案。
[0093]
根據一些實施例中,雲計算系統中可以部署的多個服務(例如三個),每個服務對應一個或多個進程。在這種情況下,部署狀態集合m擴展為二維m=[[0,0,...,0],[0,0,...,0],[0,0,...,0]],按照步驟s2至s5的執行過程,依次變異組合服務耗時為t
im
(i表示組合編號,m表示服務編號),ti=sum(t
i_1
,t
i_m
,...)。使用最優化ti,對應的部署節點分配方式為mi。
[0094]
以下結合一個安防ai分析場景,介紹根據本方法實施例的方法的有益效果。在雲計算系統的混合集群a中,包括3個雲端部署節點以及3個邊端部署節點。在安防ai分析場景中,需要執行15個分析進程,4個進程要求部署在邊端節點,11個進程可部署在雲端節點。運行在雲端節點的11個服務,僅有7個滿足部署在邊端節點的資源限制要求。
[0095]
表1中列出了人工指定的部署鏈路以及根據本技術實施例的方法所得到的部署鏈路的情況以及性能。如表1中數據所示,根據本技術實施例的方法所得到的部署鏈路2比默認人工指定的部署鏈路提升了33.9%的性能。在更複雜的多服務多鏡像項目中,本技術實施例的自動化部署策略帶來收益可能大於50%。
[0096][0097][0098]
表1:部署鏈路性能比較
[0099]
圖2是圖示出根據示例性實施例的在雲計算系統中部署多個進程的裝置的框圖。
[0100]
如圖2所示,該裝置200包括:
[0101]
第一計算模塊201,用於計算初始狀態下的鏈路總耗時,在初始狀態下進程集合c中的全部進程被指定為在雲端節點運行;
[0102]
變異模塊202,用於以初始狀態為種子,從進程集合c中被指定為在雲端節點運行的進程中隨機選取至少一個進程並將其指定為在邊端節點運行,生成變異狀態;
[0103]
第二計算模塊203,用於計算變異狀態的鏈路總耗時;
[0104]
第一循環模塊204,用於循環調用變異模塊和第二計算模塊,得到多個變異狀態下分別對應的多個鏈路總耗時;
[0105]
選取模塊205,用於述多個變異狀態下的多個鏈路總耗時中選取鏈路總耗時最小的變異狀態作為初始狀態;
[0106]
第二循環模塊206,用於循環調用變異模塊、第二計算模塊、第一循環模塊和選取模塊;
[0107]
部署模塊207,用於根據第二循環模塊最後一次調用選取模塊所獲得的鏈路總耗
時最小的變異狀態部署多個進程。
[0108]
應當理解,圖2中所示的部署多個進程的裝置的各個模塊可以與參考圖1描述的在雲計算系統中部署多個進程的方法中的各個步驟相對應。由此,上面針對部署多個進程的方法描述的操作、特徵和優點同樣適用於在雲計算系統中部署多個進程的裝置及其包括的模塊。為了簡潔起見,某些操作、特徵和優點在此不再贅述。
[0109]
根據一些實施例,在雲計算系統中部署多個進程的裝置進一步包括:標記模塊,用於根據進程集合c中的進程的資源需求以及邊端節點的資源配額,將進程集合c中的邊端節點上能夠運行的進程標記為可在邊端節點上運行的進程。
[0110]
根據一些實施例,變異模塊包括校驗模塊,用於按照變異狀態部署進程並執行服務分析請求校驗,若未通過則將隨機選取的至少一個進程指定為在雲端節點運行。
[0111]
雖然上面參考特定模塊討論了特定功能,但是應當注意,本文討論的各個模塊的功能可以分為多個模塊,和/或多個模塊的至少一些功能可以組合成單個模塊。本文討論的特定模塊執行動作包括該特定模塊本身執行該動作,或者替換地該特定模塊調用或以其他方式訪問執行該動作(或結合該特定模塊一起執行該動作)的另一個組件或模塊。因此,執行動作的特定模塊可以包括執行動作的該特定模塊本身和/或該特定模塊調用或以其他方式訪問的、執行動作的另一模塊。
[0112]
還應當理解,本文可以在軟體硬體元件或程序模塊的一般上下文中描述各種技術。上面關於圖2描述的各個模塊可以在硬體中或在結合軟體和/或固件的硬體中實現。例如,這些模塊可以被實現為電腦程式代碼/指令,該電腦程式代碼/指令被配置為在一個或多個處理器中執行並存儲在計算機可讀存儲介質中。可替換地,這些模塊可以被實現為硬體邏輯/電路。例如,在一些實施例中,圖2描述的各個模塊中的一個或多個可以一起被實現在片上系統(system on chip,soc)中。soc可以包括集成電路晶片(其包括處理器(例如,中央處理單元(central processing unit,cpu)、微控制器、微處理器、數位訊號處理器(digital signal processor,dsp)等)、存儲器、一個或多個通信接口、和/或其他電路中的一個或多個部件),並且可以可選地執行所接收的程序代碼和/或包括嵌入式固件以執行功能。
[0113]
根據本技術的一方面,提供了一種電子設備,包括:至少一個處理器;以及存儲器,其上存儲有電腦程式,其中,電腦程式在被處理器執行時,使處理器執行上述任意一種方法。
[0114]
根據本技術的一方面,提供了一種計算機可讀存儲介質,其上存儲有電腦程式,電腦程式被處理器執行時,使處理器執行上述任意一種方法。
[0115]
根據本技術的一方面,提供了一種電腦程式產品,包括電腦程式,該電腦程式被處理器執行時,使處理器執行上述任意一種方法。
[0116]
在下文中,結合圖3描述這樣的電子設備、非暫態計算機可讀存儲介質和電腦程式產品的說明性示例。
[0117]
圖3示出了可以被用來實施本文所描述的方法的電子設備300的示例配置。根據本技術實施例的在雲計算系統中部署多個進程的裝置也可以全部或至少部分地由電子設備300或類似設備或系統實現。
[0118]
電子設備300可以是各種不同類型的設備。電子設備300的示例包括但不限於:臺
式計算機、伺服器計算機、筆記本電腦或上網本計算機、行動裝置(例如,平板電腦、蜂窩或其他無線電話(例如,智慧型電話)、記事本計算機、移動臺)、可穿戴設備(例如,眼鏡、手錶)、娛樂設備(例如,娛樂器具、通信地耦合到顯示設備的機頂盒、遊戲機)、電視或其他顯示設備、汽車計算機等等。
[0119]
電子設備300可以包括能夠諸如通過系統總線311或其他適當的連接彼此通信的至少一個處理器302、存儲器304、(多個)通信接口309、顯示設備301、其他輸入/輸出(i/o)設備310以及一個或更多大容量存儲設備303。
[0120]
處理器302可以是單個處理單元或多個處理單元,所有處理單元可以包括單個或多個計算單元或者多個核心。處理器302可以被實施成一個或更多微處理器、微型計算機、微控制器、數位訊號處理器、中央處理單元、狀態機、邏輯電路和/或基於操作指令來操縱信號的任何設備。除了其他能力之外,處理器302可以被配置成獲取並且執行存儲在存儲器304、大容量存儲設備303或者其他計算機可讀介質中的計算機可讀指令,諸如作業系統305的程序代碼、應用程式306的程序代碼、其他程序307的程序代碼等。
[0121]
存儲器304和大容量存儲設備303是用於存儲指令的計算機可讀存儲介質的示例,指令由處理器302執行來實施前面所描述的各種功能。舉例來說,存儲器304一般可以包括易失性存儲器和非易失性存儲器二者(例如ram、rom等等)。此外,大容量存儲設備303一般可以包括硬碟驅動器、固態驅動器、可移除介質、包括外部和可移除驅動器、存儲器卡、快閃記憶體、軟盤、光碟(例如cd、dvd)、存儲陣列、網絡附屬存儲、存儲區域網等等。存儲器304和大容量存儲設備303在本文中都可以被統稱為存儲器或計算機可讀存儲介質,並且可以是能夠把計算機可讀、處理器可執行程序指令存儲為電腦程式代碼的非暫態介質,電腦程式代碼可以由處理器302作為被配置成實施在本文的示例中所描述的操作和功能的特定機器來執行。
[0122]
多個程序可以存儲在大容量存儲設備303上。這些程序包括作業系統305、一個或多個應用程式306、其他程序307和程序數據308,並且它們可以被加載到存儲器304以供執行。這樣的應用程式或程序模塊的示例可以包括例如用於實現以下部件/功能的電腦程式邏輯(例如,電腦程式代碼或指令):在雲計算系統中部署多個進程的方法(包括該方法的任何合適的步驟)和/或本技術描述的另外的實施例。
[0123]
雖然在圖3中被圖示成存儲在電子設備300的存儲器304中,但是模塊305、306、307和308或者其部分可以使用可由電子設備300訪問的任何形式的計算機可讀介質來實施。如本文所使用的,「計算機可讀介質」至少包括兩種類型的計算機可讀介質,也就是計算機可讀存儲介質和通信介質。
[0124]
計算機可讀存儲介質包括通過用於存儲信息的任何方法或技術實施的易失性和非易失性、可移除和不可移除介質,信息諸如是計算機可讀指令、數據結構、程序模塊或者其他數據。計算機可讀存儲介質包括而不限於ram、rom、eeprom、快閃記憶體或其他存儲器技術,cd-rom、數字通用盤(dvd)、或其他光學存儲設備,磁盒、磁帶、磁碟存儲設備或其他磁性存儲設備,或者可以被用來存儲信息以供電子設備訪問的任何其他非傳送介質。與此相對,通信介質可以在諸如載波或其他傳送機制之類的已調製數據信號中具體實現計算機可讀指令、數據結構、程序模塊或其他數據。本文所定義的計算機可讀存儲介質不包括通信介質。
[0125]
一個或更多通信接口309用於諸如通過網絡、直接連接等等與其他設備交換數據。
這樣的通信接口可以是以下各項中的一個或多個:任何類型的網絡接口(例如,網絡接口卡(nic))、有線或無線(諸如ieee 802.11無線lan(wlan))無線接口、全球微波接入互操作(wi-max)接口、乙太網接口、通用串行總線(usb)接口、蜂窩網絡接口、bluetoothtm接口、近場通信(nfc)接口等。通信接口309可以促進在多種網絡和協議類型內的通信,其中包括有線網絡(例如lan、電纜等等)和無線網絡(例如wlan、蜂窩、衛星等等)、網際網路等等。通信接口309還可以提供與諸如存儲陣列、網絡附屬存儲、存儲區域網等等中的外部存儲設備(未示出)的通信。
[0126]
在一些示例中,可以包括諸如監視器之類的顯示設備301,以用於向用戶顯示信息和圖像。其他i/o設備310可以是接收來自用戶的各種輸入並且向用戶提供各種輸出的設備,並且可以包括觸摸輸入設備、手勢輸入設備、攝影機、鍵盤、遙控器、滑鼠、印表機、音頻輸入/輸出設備等等。
[0127]
本文描述的技術可以由電子設備300的這些各種配置來支持,並且不限於本文所描述的技術的具體示例。例如,該功能還可以通過使用分布式系統在「雲」上全部或部分地實現。雲包括和/或代表用於資源的平臺。平臺抽象雲的硬體(例如,伺服器)和軟體資源的底層功能。資源可以包括在遠離電子設備300的伺服器上執行計算處理時可以使用的應用和/或數據。資源還可以包括通過網際網路和/或通過諸如蜂窩或wi-fi網絡的訂戶網絡提供的服務。平臺可以抽象資源和功能以將電子設備300與其他電子設備連接。因此,本文描述的功能的實現可以分布在整個雲內。例如,功能可以部分地在電子設備300上以及部分地通過抽象雲的功能的平臺來實現。
[0128]
雖然在附圖和前面的描述中已經詳細地說明和描述了本技術,但是這樣的說明和描述應當被認為是說明性的和示意性的,而非限制性的;本技術不限於所公開的實施例。通過研究附圖、公開內容和所附的權利要求書,本領域技術人員在實踐所要求保護的主題時,能夠理解和實現對於所公開的實施例的變型。在權利要求書中,詞語「包括」不排除未列出的其他元件或步驟,不定冠詞「一」或「一個」不排除多個,術語「多個」是指兩個或兩個以上,並且術語「基於」應解釋為「至少部分地基於」。在相互不同的從屬權利要求中記載了某些措施的僅有事實並不表明這些措施的組合不能用來獲益。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀