TW201629759A - 一種cpu資源分配的方法、裝置及電子設備 - Google Patents

一種cpu資源分配的方法、裝置及電子設備 Download PDF

Info

Publication number
TW201629759A
TW201629759A TW104128806A TW104128806A TW201629759A TW 201629759 A TW201629759 A TW 201629759A TW 104128806 A TW104128806 A TW 104128806A TW 104128806 A TW104128806 A TW 104128806A TW 201629759 A TW201629759 A TW 201629759A
Authority
TW
Taiwan
Prior art keywords
cpu
process group
preset time
time range
resource
Prior art date
Application number
TW104128806A
Other languages
English (en)
Inventor
zhi-yuan Zhou
Original Assignee
Alibaba Group Services Ltd
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 Alibaba Group Services Ltd filed Critical Alibaba Group Services Ltd
Publication of TW201629759A publication Critical patent/TW201629759A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本發明公開了一種CPU資源配置的方法和裝置以及一種電子設備。其中,所述CPU資源配置的方法用於多處理器設備,包括:獲取所述多處理器設備中運行的各個進程組在預設時間範圍內的CPU資源需求量,以及所述多處理器設備中各個CPU在所述預設時間範圍內的空閒資源值;根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空閒資源值,為每一個進程組分配其所需數量的處理器。採用本發明提供的方法,能夠為每一個進程組動態分配CPU資源,使得CPU資源在多個進程組之間儘量平衡分配,有利於資源高效利用,從而達到改善系統整體性能的效果。

Description

一種CPU資源分配的方法、裝置及電子設備
本發明涉及電腦硬體領域,具體涉及一種CPU資源配置的方法和裝置。本發明還具體涉及一種電子設備。
伺服器是網路中的重要設備,要接受少至幾十人、多至成千上萬人的存取,因此對服務器具有大資料量的快速吞吐、超強的穩定性、長時間運行等嚴格要求。面對超大運算量,部門級、企業級的伺服器應支援CPU(Central Processing Unit,中央處理器)平行處理技術。平行處理是指一台伺服器有多個CPU同時工作。平行處理能夠大大提升伺服器的資料處理能力。目前,許多高端伺服器都配備多個CPU。
一種典型的CPU平行處理技術應用場景,是在一台伺服器上部署多個應用程式,多個應用程式能夠同時運行。在一台部署多個應用程式的伺服器中,每個應用程式對應一個進程組,該進程組可能包括一個或多個進程。多個進程組共用一台伺服器中的硬體資源。在多個應用程式同時運行過程中,為防止進程組之間相互影響和產生性能抖 動,需要將各個應用程式對應的進程組進行CPU資源隔離。在理想情況下,為每個進程組分配獨佔的CPU資源,能夠保證進程組之間CPU資源隔離。然而,獨佔CPU資源的方法將導致部分CPU資源不能被充分利用,因此造成CPU資源浪費。
為了提高CPU資源利用率,通常將一個CPU分配給兩個或更多的進程組使用,即某些CPU會被多個進程組共用,即:資源超配。資源超配能夠使得CPU資源在隔離性與資源利用率上達到平衡。
現有技術在使用資源超配的方法為進程組分配CPU資源時,是將進程組綁定到固定的CPU集合上執行。由於不同的應用程式對於CPU的實際需求不同,並且同一個進程組在不同時間段對於CPU資源的需求也不同,因此,這種固定綁定的方法,可能導致某些CPU因為承載了多個忙碌的應用程式而滿負載,而另外一些CPU負載較輕,即:各個CPU的利用率不均衡。多進程環境中CPU資源被多個進程組共用使用,當一個或多個CPU負載較重時,對應的應用程式的性能容易出現抖動。
因此,現有技術存在進程併發環境下各個CPU的利用率不均衡的問題。
本發明提供一種CPU資源配置的方法和裝置,以解決現有技術存在進程併發環境下各個CPU的利用率不均 衡的問題。本發明另外提供一種電子設備。
本發明提供一種CPU資源配置的方法,用於多處理器設備,包括:獲取所述多處理器設備中運行的各個進程組在預設時間範圍內的CPU資源需求量,以及所述多處理器設備中各個CPU在所述預設時間範圍內的空閒資源值;根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空閒資源值,為每一個進程組分配其所需數量的處理器。
可選的,所述進程組在預設時間範圍內的CPU資源需求量,是指所述預設時間範圍內所述進程組在每個CPU上的執行時間之和。
可選的,所述進程組在預設時間範圍內的CPU資源需求量,採用如下步驟獲取:獲取所述預設時間範圍內所述進程組在每個CPU上的執行時間;將所述預設時間範圍內所述進程組在每個CPU上的執行時間求和,作為所述進程組在預設時間範圍內的CPU資源需求量。
可選的,所述預設時間範圍內所述進程組在每個CPU上的執行時間,採用如下方式獲取:讀取cgroup目錄下cpuacct.usage_per_cpu,獲取預設時間範圍內所述進程組在每個CPU上的執行時間。
可選的,所述CPU在預設時間範圍內的空閒資源 值,是指所述預設時間範圍內的CPU閒置時間長度。
可選的,所述CPU在預設時間範圍內的空閒資源值,採用如下步驟獲取:獲取所述預設時間範圍內所述CPU處於運行狀態的時間;將所述預設時間範圍和所述預設時間範圍內所述CPU處於運行狀態的時間之差,作為所述CPU在所述預設時間範圍內的空閒資源值。
可選的,通過性能監測工具,獲取所述預設時間範圍內所述CPU處於運行狀態的時間;所述性能監測工具包括vmstat、ps或top。
可選的,所述根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空閒資源值,為每一個進程組分配其所需數量的處理器,包括:根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空閒資源值,生成CPU資源配置方案;配置所述CPU資源配置方案,將每一個進程組綁定到為其分配的處理器。
可選的,所述根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空閒資源值,生成CPU資源配置方案,包括:根據所述各個進程組在預設時間範圍內的CPU資源 需求量,以所述進程組的CPU資源需求量的降序方式,對所述進程組排序,獲得進程組序列;以及,根據所述各個CPU在所述預設時間範圍內的空閒資源值,以所述CPU的空閒資源值的降序方式,對各個CPU進行排序,獲得CPU序列;將所述進程組序列中排在第一位的進程組作為當前進程組;根據所述當前進程組需要的CPU數量,在所述CPU序列中,從排在第一位的CPU開始,依次選取所述當前進程組所需數量的CPU,並將被選取的CPU分配給所述當前進程組;根據所述當前進程組在每個CPU上的執行時間,更新被分配的CPU的空閒資源值;重新根據各個CPU的空閒資源值,以所述CPU的空閒資源值的降序方式,更新所述CPU序列;判斷所述當前進程組是否是所述進程組序列的最後一個進程組;若是,則所述CPU資源配置方案生成完畢;若否,則根據所述進程組排序,重新確定所述當前進程組後一位的進程組為當前進程組;並返回所述根據所述當前進程組需要的CPU數量,在所述CPU序列中,從排在第一位的CPU開始,依次選取所述當前進程組所需數量的CPU,並將被選取的CPU分配給所述當前進程組的步驟。
可選的,當預設的執行條件成立時,執行所述CPU資源配置的方法。
可選的,所述預設的執行條件,採用如下條件:當前時間與上次執行所述CPU資源配置的方法的時間間隔大於預設的時間間隔。
可選的,所述預設的執行條件,採用如下條件:各個CPU的CPU利用率的最大值大於預設閾值。
可選的,所述預設的執行條件,採用如下條件:各個CPU的CPU利用率的最大值大於各個CPU的CPU利用率的最小值的N倍。
可選的,所述預設的執行條件,採用如下條件:各個CPU的CPU利用率的最大值大於預設閾值;並且各個CPU的CPU利用率的最大值大於各個CPU的CPU利用率的最小值的N倍。
相應的,本發明還提供一種CPU資源配置的裝置,包括:獲取單元,用於獲取所述多處理器設備中運行的各個進程組在預設時間範圍內的CPU資源需求量,以及所述多處理器設備中各個CPU在所述預設時間範圍內的空閒資源值;分配單元,用於根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空閒資源值,為每一個進程組分配其所需數量的處理器。
可選的,所述獲取單元包括:第一獲取子單元,用於獲取所述各個進程組在預設時間範圍內的CPU資源需求量;所述第一獲取子單元包括:監測子單元,用於獲取所述預設時間範圍內所述各個進程組在每個CPU上的執行時間;計算子單元,用於將所述預設時間範圍內所述各個進程組在每個CPU上的執行時間以進程組為單位分別求和,作為所述各個進程組在預設時間範圍內的CPU資源需求量。
可選的,所述獲取單元包括:第二獲取子單元,用於獲取所述各個CPU在預設時間範圍內的空閒資源值;所述第二獲取子單元包括:監測子單元,用於獲取所述預設時間範圍內所述各個CPU處於運行狀態的時間;計算子單元,用於將所述預設時間範圍和所述預設時間範圍內所述各個CPU處於運行狀態的時間之差,作為所述各個CPU在所述預設時間範圍內的空閒資源值。
可選的,所述分配單元包括:生成子單元,用於根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空閒資源值,生成CPU資源配置方案;配置子單元,用於配置所述CPU資源配置方案,將 每一個進程組綁定到為其分配的處理器。
可選的,所述生成子單元包括:初始排序子單元,用於根據所述各個進程組在預設時間範圍內的CPU資源需求量,以所述進程組的CPU資源需求量的降序方式,對所述進程組排序,獲得進程組序列;以及,根據所述各個CPU在所述預設時間範圍內的空閒資源值,以所述CPU的空閒資源值的降序方式,對各個CPU進行排序,獲得CPU序列;第一定位子單元,用於將所述進程組序列中排在第一位的進程組作為當前進程組;分配子單元,用於根據所述當前進程組需要的CPU數量,在所述CPU序列中,從排在第一位的CPU開始,依次選取所述當前進程組所需數量的CPU,並將被選取的CPU分配給所述當前進程組;更新子單元,用於根據所述當前進程組在每個CPU上的執行時間,更新被分配的CPU的空閒資源值;重新排序子單元,用於重新根據各個CPU的空閒資源值,以所述CPU的空閒資源值的降序方式,更新所述CPU序列;判斷子單元,用於判斷所述當前進程組是否是所述進程組序列的最後一個進程組;結束子單元,用於若上述判斷結果為是,則所述CPU資源配置方案生成完畢;第二定位子單元,用於若上述判斷結果為否,則根據 所述進程組排序,重新確定所述當前進程組後一位的進程組為當前進程組;並返回所述根據所述當前進程組需要的CPU數量,在所述CPU序列中,從排在第一位的CPU開始,依次選取所述當前進程組所需數量的CPU,並將被選取的CPU分配給所述當前進程組的步驟。
可選的,所述裝置還包括:啟動單元,用於當預設的執行條件成立時,執行所述CPU資源配置的方法。
此外,本發明還提供一種電子設備,所述電子設備包括:記憶體;以及多個處理器,在所述多個處理器中運行多個進程組,所述進程組被所述多個處理器執行時,採用如下方式為各個進程組分配處理器資源:獲取所述電子設備中運行的各個進程組在預設時間範圍內的CPU資源需求量,以及所述電子設備中各個CPU在所述預設時間範圍內的空閒資源值;根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空閒資源值,為每一個進程組分配其所需數量的處理器。
與現有技術相比,本發明具有以下優點:本發明提供的CPU資源配置的方法、裝置及電子設備,通過獲取多處理器設備中運行的各個進程組在預設時間範圍內的CPU資源需求量,以及各個CPU在預設時間 範圍內的空閒資源值;根據各個進程組在預設時間範圍內的CPU資源需求量,以及各個CPU在預設時間範圍內的空閒資源值,為每一個進程組分配其所需數量的處理器。由於本發明提供的方法是根據各個進程組的CPU資源需求量和各個CPU的當前空閒資源值,為每一個進程組動態分配CPU資源,使得CPU資源在多個進程組之間儘量平衡分配,均衡了各個CPU的資源利用率,保證各個應用程式的性能表現,有利於資源高效利用,從而達到改善系統整體性能的效果。
101‧‧‧獲取單元
103‧‧‧分配單元
1011‧‧‧第一獲取子單元
10111‧‧‧監測子單元
10112‧‧‧計算子單元
1012‧‧‧第二獲取子單元
10121‧‧‧監測子單元
10122‧‧‧計算子單元
103‧‧‧分配單元
1031‧‧‧生成子單元
1032‧‧‧配置子單元
10311‧‧‧初始排序子單元
10312‧‧‧第一定位子單元
10313‧‧‧分配子單元
10314‧‧‧更新子單元
10315‧‧‧重新排序子單元
10316‧‧‧判斷子單元
10317‧‧‧結束子單元
10318‧‧‧第二定位子單元
201‧‧‧啟動單元
301‧‧‧記憶體
302‧‧‧處理器
圖1是本發明的CPU資源配置的方法實施例的流程圖;圖2是本發明的CPU資源配置的方法實施例多處理器設備的示意圖;圖3是本發明的CPU資源配置的方法實施例獲取進程組在預設時間範圍內的CPU資源需求量的具體流程圖;圖4是本發明的CPU資源配置的方法實施例獲取CPU在預設時間範圍內的空閒資源值的具體流程圖;圖5是本發明的CPU資源配置的方法實施例步驟S1031的具體流程圖;圖6是本發明的CPU資源配置的裝置實施例的示意圖; 圖7是本發明的CPU資源配置的裝置實施例獲取單元101的具體示意圖;圖8是本發明的CPU資源配置的裝置實施例分配單元103的具體示意圖;圖9是本發明的CPU資源配置的裝置實施例生成子單元1031的具體示意圖;圖10是本發明的CPU資源配置的裝置實施例的具體示意圖;圖11是本發明的電子設備實施例的示意圖。
在下面的描述中闡述了很多具體細節以便於充分理解本發明。但是本發明能夠以很多不同於在此描述的其它方式來實施,本領域技術人員可以在不違背本發明內涵的情況下做類似推廣,因此本發明不受下面公開的具體實施的限制。
在本發明中,提供了一種CPU資源配置的方法和裝置,以及一種電子設備。在下面的實施例中逐一進行詳細說明。
本發明提供的CPU資源配置的方法,是基於這樣一種設計構思,即:對於在多處理器設備中運行的多個進程組,根據各個進程組在預設時間範圍內的CPU資源需求量,以及各個CPU在預設時間範圍內的當前空閒資源值,為每一個進程組分配其所需數量的處理器。由於本發 明提供的方法是根據各個處理器的當前空閒資源,以及各個進程組的CPU資源需求量,為各個進程組分配處理器資源,因此本發明提供的方法是一種動態的CPU資源配置方法。
請參考圖1,其為本發明的CPU資源配置的方法實施例的流程圖。所述方法用於多處理器設備,包括如下步驟:步驟S101:獲取所述多處理器設備中運行的各個進程組在預設時間範圍內的CPU資源需求量,以及所述多處理器設備中各個CPU在所述預設時間範圍內的空閒資源值。
請參考圖2,其為本發明的CPU資源配置的方法實施例多處理器設備的示意圖。多處理器設備是指包含兩台或多台功能相近的處理器,處理器之間彼此可以交換資料,所有處理器共用記憶體,I/O設備,控制器,及外部設備,整個硬體系統由統一的作業系統控制,在處理器和程式之間實現作業、任務、程式、陣列及其元素各級的全面並行。採用多處理器設備,能夠提高設備的可靠性及處理能力。
本發明實施例所述的多處理器設備包括但不限於具有多個處理器的電腦、PAD、iPad等終端設備,還包括具有多個處理器的移動通訊設備。以電腦為例,多處理器結構已成為各種等級電腦流行的設計方法,高階個人電腦採用2~4個處理器,大型機可使用多達數十個處理器,巨型電 腦則可能採用上百甚至成千上萬個處理器。
多處理器設備是專為平行處理技術設計的。平行處理是電腦系統中能同時執行兩個或更多個處理器的一種計算方法。處理器可同時工作於同一程式的不同方面,例如:為了節省大型和複雜問題的解決時間,對同一程式進行平行化處理,也就是說將工作各部分分配到不同處理器中,經過平行化處理的同一程式的各個部分在運行過程中分別對應各自的進程。在多處理器設備中,一般將一組業務相關的進程分為一組,因此上述同一程式對應一個進程組。採用平行處理技術,使得一個在n個處理器上執行的程式速度可能會是在單一處理器上執行的速度的n倍。
相對於上述處理器可同時工作於同一程式的不同方面,處理器還可以同時工作於不同的程式,其中的每一個程式分別對應各自不同的進程組。可見,多處理器設備工作在一個進程併發的環境中,多個進程共用一個多處理器設備中的硬體資源。
本發明實施例所述的進程是作業系統結構的基礎;是一次程式的執行;是一個程式及其資料在處理器上循序執行時所發生的活動。多道程式在執行時,需要共用系統資源,從而導致各程式在執行過程中出現相互制約的關係,程式的執行表現出間斷性的特徵。這些特徵都是在程式的執行過程中發生的,是動態的過程,而傳統的程式本身是一組指令的集合,是一個靜態的概念,無法描述程式在記憶體中的執行情況,即我們無法從程式的字面上看出它何 時執行,何時停頓,也無法看出它與其它執行程式的關係,因此,程式這個靜態概念已不能如實反映程式併發執行過程的特徵。為了深刻描述程式動態執行過程的性質,人們引入“進程”概念。
本發明實施例所述的進程組包括一個或多個進程,通常將一組業務相關的進程分為一組。由於多處理器設備可以同時工作於不同的程式,一個程式對應一個進程組,為了隔離各個程式,本發明實施例提供的CPU資源配置的方法是以進程組為單位進行CPU資源配置的,以達到不同程式之間CPU資源隔離的目的。
由於本發明提供的方法是根據多處理器設備中運行的各個進程組在預設時間範圍內的CPU資源需求量,以及各個CPU在預設時間範圍內的空閒資源值,為每一個進程組分配其所需數量的處理器。因此,要實施本發明提供的方法,首先要獲取多處理器設備中運行的各個進程組在預設時間範圍內的CPU資源需求量,以及多處理器設備中各個CPU在預設時間範圍內的空閒資源值兩方面資料。
本發明實施例所述的進程組在預設時間範圍內的CPU資源需求量,是指在預設時間範圍內進程組在每個CPU上的執行時間之和。其中,預設時間範圍是一個預先設置好的用於觀察CPU運行狀況的時間範圍值。預設時間範圍的取值與啟動CPU資源配置方法的時間間隔有關,預設時間範圍過小,則啟動CPU資源配置方法的時間間隔 可以越短;反之則越長。在實際應用中,可以根據具體的應用需求,設置時間範圍值。
請參考圖3,其為本發明的CPU資源配置的方法實施例獲取進程組在預設時間範圍內的CPU資源需求量的具體流程圖。在本實施例中,獲取進程組在預設時間範圍內的CPU資源需求量,包括:步驟S1011:獲取所述預設時間範圍內所述進程組在每個CPU上的執行時間。
要獲取進程組在預設時間範圍內的CPU資源需求量,首先需要獲取預設時間範圍內進程組在每個CPU上的執行時間資料。通過使用多處理器設備上運行的作業系統提供的監測工具,可以獲得在預設時間範圍內的各個進程組在每個CPU上的執行時間資料。以Linux作業系統為例,該系統預設情況下不提供直接獲取各個進程組在每個CPU上的執行時間資料的工具,為此可以通過對Linux內核打補丁的方法來收集該資料。
在本實施例中,所述獲取預設時間範圍內所述進程組在每個CPU上的執行時間,採用如下方式:讀取cgroup目錄下cpuacct.usage_per_cpu,獲取預定時間範圍內所述進程組在每個CPU上的執行時間資料。
cgroup是control groups的縮寫,是Linux內核提供的一種可以限制、記錄、隔離進程組所使用的物理資源(例如:cpu,memory,I/O等等)的機制。最初由google的工程師提出,後來被整合進Linux內核。cgroup也是 LXC(Linux Container,Linux容器工具)為實現虛擬化所使用的資源管理手段,可以說沒有cgroups就沒有LXC。
步驟S1012:將所述預設時間範圍內所述進程組在每個CPU上的執行時間求和,作為所述進程組在預設時間範圍內的CPU資源需求量。
通過步驟S1011獲取到預設時間範圍內所述進程組在每個CPU上的執行時間後,將它們求和,就得到本發明實施例所述的進程組的CPU資源需求量。
本發明實施例所述的CPU在預設時間範圍內的當前空閒資源值,是指預設時間範圍內的CPU閒置時間長度。請參考圖4,其為本發明的CPU資源配置的方法實施例獲取CPU在預設時間範圍內的空閒資源值的具體流程圖。在本實施例中,獲取CPU在預設時間範圍內的當前空閒資源值,包括:步驟S1011’:獲取所述預設時間範圍內所述CPU處於運行狀態的時間。
Linux作業系統預設環境下提供了性能監測工具,通過性能監測工具,能夠獲取預設時間範圍內的各個CPU處於運行狀態的時間。常見的性能監測工具包括vmstat,ps和top等。其中,監測工具vmstat命令報告關於內核執行緒、虛擬記憶體、磁片、陷阱和CPU活動的統計資訊。由vmstat命令生成的報告可以用於平衡系統負載活動。監測工具ps和top命令是系統分析最常用的基本命 令,ps命令提供了一個正在運行的進程的清單,列出進程的數量取決於命令所附加的參數。例如:ps-A命令列出所有進程和它們相應的進程ID(PID),進程的PID是使用其他一些工具之前所必須瞭解的,例如pmap或者renice。
步驟S1012’:將所述預設時間範圍和所述預設時間範圍內所述CPU處於運行狀態的時間之差,作為所述CPU在所述預設時間範圍內的空閒資源值。
在本實施例中,計算CPU在所述預設時間範圍內的空閒資源值,採用如下計算公式:T2j=T-T1j,其中T為預設時間範圍,T1j為處理器Pj在預設時間範圍T內處於運行狀態的時間,T2j為處理器Pj在預設時間範圍T內的空閒資源值。
通過上述步驟獲取到多處理器設備中運行的各個進程組在預設時間範圍內的CPU資源需求量,以及多處理器設備中各個CPU在預設時間範圍內的空閒資源值兩方面資料後,就可以繼續執行步驟S103,為每一個進程組分配其所需數量的處理器。
步驟S103:根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空閒資源值,為每一個進程組分配其所需數量的處理器。
本發明實施例提供的CPU資源配置方法是一個CPU資源的動態分配方法。在實際應用中,可以採用兩種具體 實施方式實施本發明實施例提供的方法,分別為:方式一、首先生成一個包括所有進程組的CPU資源配置的整體方案,然後再統一配置該方案;方式二、為一個進程組分配CPU資源後,立即通過配置工具將該進程組綁定到為其所分配的CPU,然後再對其它進程組做同樣的處理,即:分配一個就配置一個。上述兩種不同的方式只是具體實施方式的變更,都不偏離本發明的核心,因此都在本發明的保護範圍之內。
在本實施例中,採用上述方式一將每一個進程組綁定到為其分配的處理器。步驟S103具體包括:步驟S1031:根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空閒資源值,生成CPU資源配置方案。
根據各個進程組在預設時間範圍內的CPU資源需求量,以及各個CPU在預設時間範圍內的空閒資源值,生成CPU資源配置方案,可以採用多種具體實施方式。不同的實施方式將得到不同的CPU資源配置方案。各種不同的方式都只是具體實施方式的變更,都不偏離本發明的核心,因此都在本發明的保護範圍之內。
不同的CPU資源配置方案對CPU資源的動態均衡效果不同。評估一種CPU資源配置方案的動態均衡效果可以採用多種指標,包括均方差等指標。理論上,一個絕對均衡的CPU資源配置方案應該滿足兩個條件:1)滿足各個進程組的實際CPU資源需求量;2)各個CPU的利用率 相互之間最接近,只有滿足上述兩個條件的CPU資源配置方案才是一個最佳方案。下面以均方差指標為例,用均方差來代表各個CPU利用率的均衡度,說明一個CPU資源配置方案的動態均衡效果。
均方差公式為:,其中n為CPU數量,Vi=Ti/T,Ti為第i個CPU在預設時間範圍T內處於運行狀態的時間,Vi為第i個CPU在預設時間範圍T內的CPU利用率,為n個CPU的CPU利用率的均值,mse為均方差。
理論上,在各種CPU資源配置方案中存在一種方案,該方案對應的上述均方差值最小,記為mse minmse min所對應的CPU分配方案為最優解,即:滿足上述兩個條件。在實際應用中,出於效率的考慮,不可能遍歷所有的CPU資源配置方案,本實施例提供一種具體實施方式可以得到一個近似最佳的CPU資源配置方案。
請參考圖5,其為本發明的CPU資源配置的方法實施例步驟S1031的具體流程圖。步驟S1031包括:步驟S10311:根據所述各個進程組在預設時間範圍內的CPU資源需求量,以所述進程組的CPU資源需求量的降序方式,對所述進程組排序,獲得進程組序列;以及,根據所述各個CPU在所述預設時間範圍內的空閒資源值,以所述CPU的空閒資源值的降序方式,對各個CPU進行排序,獲得CPU序列。
本發明實施例提供的CPU資源配置的方法,作為一 種動態資源配置方法,基於這樣一種設計構思,即:對於在多處理器設備中運行的多個進程組,按照各個進程組在預設時間範圍內的CPU資源需求量的從大到小的順序,為每一個進程組分配其所需數量的處理器。在具體為一個進程組分配CPU資源時,按照各個CPU在預設時間範圍內的空閒資源值的從大到小的順序,為一個進程組分配其所需數量的處理器。因此,要實施本發明實施例提供的方法,首先要獲得:1)以進程組的CPU資源需求量的降序方式,排序後的進程組序列;2)以CPU的空閒資源值的降序方式,排序後的CPU序列。
通過步驟S10311獲取到排序後的進程組序列和CPU序列後,就可以繼續執行後續步驟,為每一個進程組分配其所需數量的處理器。
步驟S10312:將所述進程組序列中排在第一位的進程組作為當前進程組。
步驟S10313:根據所述當前進程組需要的CPU數量,在所述CPU序列中,從排在第一位的CPU開始,依次選取所述當前進程組所需數量的CPU,並將被選取的CPU分配給所述當前進程組。
在具體為一個進程組分配CPU資源時,按照各個CPU的空閒資源值的從大到小的順序,為一個進程組分配其所需數量的處理器。
步驟S10314:根據所述當前進程組在每個CPU上的執行時間,更新被分配的CPU的空閒資源值。
為當前進程組分配了CPU資源,因此被分配給當前進程組的CPU的當前空閒資源值發生了變化,需要根據當前進程組在每個CPU上的執行時間資料,更新被分配的CPU的空閒資源值。其中,獲取當前進程組在每個CPU上的執行時間資料在步驟S1011中已經進行了詳細說明,此處不再贅述。
步驟S10315:重新根據各個CPU的空閒資源值,以所述CPU的空閒資源值的降序方式,更新所述CPU序列。
為當前進程組分配了CPU資源後,還需要繼續為進程組序列中排在當前進程組後的下一個進程組分配CPU資源。因此,首先需要根據步驟S10314更新的被分配的CPU的空閒資源值,以及其他CPU的空閒資源值,重新對各個CPU進行排序,更新CPU序列,以便總能夠將最空閒的CPU分配給進程組。
步驟S10316:判斷所述當前進程組是否是所述進程組序列的最後一個進程組。
在為進程組序列中排在當前進程組後的下一個進程組分配CPU資源前,首先要判斷當前進程組是否是進程組序列的最後一個進程組,如果是,則進入步驟S10317,CPU資源配置方案生成完畢;否則,進入步驟S10318,確定要處理的下一個進程組,並返回到步驟S10313,為下一個進程組分配CPU資源。
步驟S10317:若是,則所述CPU資源配置方案生成 完畢;步驟S10318:若否,則根據所述進程組排序,重新確定所述當前進程組後一位的進程組為當前進程組;並返回所述根據所述當前進程組需要的CPU數量,在所述CPU序列中,從排在第一位的CPU開始,依次選取所述當前進程組所需數量的CPU,並將被選取的CPU分配給所述當前進程組的步驟。
通過上述步驟S10311至S10318生成CPU資源配置方案後,就可以進入步驟S1032配置該方案。
步驟S1032:配置所述CPU資源配置方案,將每一個進程組綁定到為其分配的處理器。
在通過步驟S1031生成CPU資源配置方案後,還需要根據CPU資源配置方案,將各個進程組和為其分配的CPU進行綁定操作。在Linux作業系統中,將進程和CPU綁定的方法包括taskset命令和cgroup功能的cpuset的子系統,還包括nice和renice等命令。其中,使用taskset命令啟用進程時可以指定執行進程的CPU,例如:$ taskset-C<cpunr><command>。使用cgroup的cpuset子系統可以指定執行進程的CPU編號,例如:# echo 0,2,4,6>/cgroup/<進程組名>/cpuset.cpus,表示該進程組只允許使用編號為0,2,4,6的CPU。
在本實施例中,CPU資源配置方案包括每一個進程組和為其分配的CPU資源之間的對應關係。根據CPU資源配置方案,逐個為每一個進程組和為其分配的CPU資源 進行綁定,完成整個方案的配置處理。
上述實施例為採用方式一的具體實現過程,方式二是每為一個進程組分配CPU資源後,立即通過配置工具將該進程組綁定到為其所分配的CPU,然後再對其它進程組做同樣的處理。方式二與方式一的區別僅在於將該進程組綁定到為其所分配的CPU的時間不同,因此對方式二與方式一的相同之處不再贅述,詳見方式一的實施例的相關部分。
由於本發明實施例提供的CPU資源配置方法是動態分配方法,考慮到各個程式運行中的動態性特點,因此在多處理器設備運行過程中,需要預先設定啟動執行本發明提供的方法的條件。當預設的執行條件成立時,執行所述CPU資源配置的方法。執行條件可以採用多種具體條件,本實施例給出四種可選的執行條件。
執行條件一:當前時間與上次執行所述CPU資源配置的方法的時間間隔大於預設的時間間隔。
採用執行條件一,設定每隔固定時間間隔執行一次本發明實施例提供的方法,使得多處理器設備一直處於各個CPU資源較為均衡的狀態。在實際應用中,通常將預設的時間間隔設定為分鐘級的時間,通常將時間間隔設定在1至5分鐘之間。
執行條件二:各個CPU的CPU利用率的最大值大於預設閾值。
採用執行條件二,判斷各個CPU的CPU利用率的最 大值是否大於預設閾值;若上述判斷結果為是,則所述預設的執行條件成立。執行條件二為不固定期啟動執行本發明實施例提供的方法,為了避免不必要的CPU資源均衡動作,同時還要保證執行條件具有一定的敏感度,因此需要將預設閾值設定一個適當的值。
本發明實施例所述的預設閾值是經過大量試驗後確定的一個經驗值。預設閾值用來表示當一個CPU的利用率超過某個上限時,說明該CPU已經或接近滿負荷運行,應該進行CPU資源均衡操作。通常,對於開啟了超執行緒的多處理器設備,預設閾值設置為60%左右;對於未開啟超執行緒的多處理器設備,預設閾值設置為80%左右。
執行條件三:各個CPU的CPU利用率的最大值大於各個CPU的CPU利用率的最小值的N倍。
採用執行條件三,判斷各個CPU的CPU利用率的最大值是否大於各個CPU的CPU利用率的最小值的N倍;若上述判斷結果為是,則所述預設的執行條件成立。
執行條件四:各個CPU的CPU利用率的最大值大於預設閾值;並且各個CPU的CPU利用率的最大值大於各個CPU的CPU利用率的最小值的N倍。
執行條件四綜合考慮了上述執行條件二和執行條件三,只有兩個條件同時滿足時,才執行本發明提供的CPU資源配置方法。
在實際應用中,根據具體需求選擇採用上述執行條件之一。執行條件一是固定時間間隔啟動執行本發明實施例 提供的方法;執行條件二至四均為根據多處理器設備具體運行狀況,不固定期啟動執行本發明實施例提供的方法,即:允許出現CPU資源不均衡的狀態。設置該執行條件二至四的理論依據是:如果沒有CPU處於滿負載的現象,各個程式的CPU資源需求量也均能夠得到滿足,則程式的性能表現能夠得到保證,因此無需進行CPU資源均衡操作。
在本實施例中,採用執行條件四,控制啟動執行本發明實施例提供的方法,進行CPU資源均衡操作。具體情況為:假設在被多個進程組共用的CPU中,CPU利用率最大值為x,CPU利用率最小值為y;當x大於預設閾值,並且x與y的關係滿足x>ny時,則執行本發明實施例提供的方法。在本實施例中,將n設置為2,即:當CPU利用率最大值大於兩倍的CPU利用率最小值時,則判定當前CPU資源配置不均衡。
在上述的實施例中,提供了一種CPU資源配置的方法,與之相對應的,本發明還提供一種CPU資源配置的裝置。該裝置是與上述CPU資源配置的方法的實施例相對應。
請參看圖6,其為本發明的CPU資源配置的裝置實施例的示意圖。由於裝置實施例基本相似於方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。下述描述的裝置實施例僅僅是示意性的。
本實施例的一種CPU資源配置的裝置,包括: 獲取單元101,用於獲取所述多處理器設備中運行的各個進程組在預設時間範圍內的CPU資源需求量,以及所述多處理器設備中各個CPU在所述預設時間範圍內的空閒資源值;分配單元103,用於根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空閒資源值,為每一個進程組分配其所需數量的處理器。
請參看圖7,其為本發明的CPU資源配置的裝置實施例獲取單元101的具體示意圖。可選的,所述獲取單元101包括:第一獲取子單元1011,用於獲取所述各個進程組在預設時間範圍內的CPU資源需求量;所述第一獲取子單元1011包括:監測子單元10111,用於獲取所述預設時間範圍內所述各個進程組在每個CPU上的執行時間;計算子單元10112,用於將所述預設時間範圍內所述各個進程組在每個CPU上的執行時間以進程組為單位分別求和,作為所述各個進程組在預設時間範圍內的CPU資源需求量。
可選的,所述獲取單元101包括:第二獲取子單元1012,用於獲取所述各個CPU在預設時間範圍內的空閒資源值;所述第二獲取子單元1012包括: 監測子單元10121,用於獲取所述預設時間範圍內所述各個CPU處於運行狀態的時間;計算子單元10122,用於將所述預設時間範圍和所述預設時間範圍內所述各個CPU處於運行狀態的時間之差,作為所述各個CPU在所述預設時間範圍內的空閒資源值。
請參看圖8,其為本發明的CPU資源配置的裝置實施例分配單元103的具體示意圖。可選的,所述分配單元103包括:生成子單元1031,用於根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空閒資源值,生成CPU資源配置方案;配置子單元1032,用於配置所述CPU資源配置方案,將每一個進程組綁定到為其分配的處理器。
請參看圖9,其為本發明的CPU資源配置的裝置實施例生成子單元1031的具體示意圖。可選的,所述生成子單元1031包括:初始排序子單元10311,用於根據所述各個進程組在預設時間範圍內的CPU資源需求量,以所述進程組的CPU資源需求量的降序方式,對所述進程組排序,獲得進程組序列;以及,根據所述各個CPU在所述預設時間範圍內的空閒資源值,以所述CPU的空閒資源值的降序方式,對各個CPU進行排序,獲得CPU序列; 第一定位子單元10312,用於將所述進程組序列中排在第一位的進程組作為當前進程組;分配子單元10313,用於根據所述當前進程組需要的CPU數量,在所述CPU序列中,從排在第一位的CPU開始,依次選取所述當前進程組所需數量的CPU,並將被選取的CPU分配給所述當前進程組;更新子單元10314,用於根據所述當前進程組在每個CPU上的執行時間,更新被分配的CPU的空閒資源值;重新排序子單元10315,用於重新根據各個CPU的空閒資源值,以所述CPU的空閒資源值的降序方式,更新所述CPU序列;判斷子單元10316,用於判斷所述當前進程組是否是所述進程組序列的最後一個進程組;結束子單元10317,用於若上述判斷結果為是,則所述CPU資源配置方案生成完畢;第二定位子單元10318,用於若上述判斷結果為否,則根據所述進程組排序,重新確定所述當前進程組後一位的進程組為當前進程組;並返回所述根據所述當前進程組需要的CPU數量,在所述CPU序列中,從排在第一位的CPU開始,依次選取所述當前進程組所需數量的CPU,並將被選取的CPU分配給所述當前進程組的步驟。
請參看圖10,其為本發明的CPU資源配置的裝置實施例的具體示意圖。可選的,所述裝置還包括:所述裝置還包括: 啟動單元201,用於當預設的執行條件成立時,執行所述CPU資源配置的方法。
本發明還提供一種電子設備,請參看圖11,其為本發明的電子設備實施例的示意圖。本發明提供的電子設備包括:記憶體301;以及多個處理器302,在所述多個處理器302中運行多個進程組,所述進程組被所述多個處理器302執行時,採用如下方式為各個進程組分配處理器資源:獲取所述電子設備中運行的各個進程組在預設時間範圍內的CPU資源需求量,以及所述電子設備中各個CPU在所述預設時間範圍內的空閒資源值;根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空閒資源值,為每一個進程組分配其所需數量的處理器。
本發明提供的CPU資源配置的方法、裝置及電子設備,通過獲取多處理器設備中運行的各個進程組在預設時間範圍內的CPU資源需求量,以及各個CPU在預設時間範圍內的空閒資源值;根據各個進程組在預設時間範圍內的CPU資源需求量,以及各個CPU在預設時間範圍內的空閒資源值,為每一個進程組分配其所需數量的處理器。由於本發明提供的方法是根據各個進程組的CPU資源需求量和各個CPU的當前空閒資源值,為每一個進程組動態分配CPU資源,使得CPU資源在多個進程組之間儘量 平衡分配,均衡了各個CPU的資源利用率,保證各個應用程式的性能表現,有利於資源高效利用,從而達到改善系統整體性能的效果。
本發明雖然以較佳實施例公開如上,但其並不是用來限定本發明,任何本領域技術人員在不脫離本發明的精神和範圍內,都可以做出可能的變動和修改,因此本發明的保護範圍應當以本發明申請專利範圍所界定的範圍為准。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀媒體中的非永久性記憶體,隨機存取記憶體(RAM)和/或非揮發性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀媒體的示例。
1、電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可抹除可程式化唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁碟儲存或其他磁性存放裝置或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。 按照本文中的界定,電腦可讀媒體不包括暫態的電腦可讀媒體(transitory media),如調製的資料訊號和載波。
2、本領域技術人員應明白,本發明的實施例可提供為方法、系統或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。

Claims (21)

  1. 一種CPU資源配置的方法,用於多處理器設備,其中,包括:獲取所述多處理器設備中運行的各個進程組在預設時間範圍內的CPU資源需求量,以及所述多處理器設備中各個CPU在所述預設時間範圍內的空閒資源值;根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空閒資源值,為每一個進程組分配其所需數量的處理器。
  2. 根據申請專利範圍第1項所述的CPU資源配置的方法,其中,所述進程組在預設時間範圍內的CPU資源需求量,是指所述預設時間範圍內所述進程組在每個CPU上的執行時間之和。
  3. 根據申請專利範圍第2項所述的CPU資源配置的方法,其中,所述進程組在預設時間範圍內的CPU資源需求量,採用如下步驟獲取:獲取所述預設時間範圍內所述進程組在每個CPU上的執行時間;將所述預設時間範圍內所述進程組在每個CPU上的執行時間求和,作為所述進程組在預設時間範圍內的CPU資源需求量。
  4. 根據申請專利範圍第3項所述的CPU資源配置的方法,其中,所述預設時間範圍內所述進程組在每個CPU上的執行時間,採用如下方式獲取: 讀取cgroup目錄下cpuacct.usage_per_cpu,獲取預設時間範圍內所述進程組在每個CPU上的執行時間。
  5. 根據申請專利範圍第1項所述的CPU資源配置的方法,其中,所述CPU在預設時間範圍內的空閒資源值,是指所述預設時間範圍內的CPU閒置時間長度。
  6. 根據申請專利範圍第5項所述的CPU資源配置的方法,其中,所述CPU在預設時間範圍內的空閒資源值,採用如下步驟獲取:獲取所述預設時間範圍內所述CPU處於運行狀態的時間;將所述預設時間範圍和所述預設時間範圍內所述CPU處於運行狀態的時間之差,作為所述CPU在所述預設時間範圍內的空閒資源值。
  7. 根據申請專利範圍第6項所述的CPU資源配置的方法,其中,通過性能監測工具,獲取所述預設時間範圍內所述CPU處於運行狀態的時間;所述性能監測工具包括vmstat、ps或top。
  8. 根據申請專利範圍第1項所述的CPU資源配置的方法,其中,所述根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空閒資源值,為每一個進程組分配其所需數量的處理器,包括:根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空 閒資源值,生成CPU資源配置方案;配置所述CPU資源配置方案,將每一個進程組綁定到為其分配的處理器。
  9. 根據申請專利範圍第8項所述的CPU資源配置的方法,其中,所述根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空閒資源值,生成CPU資源配置方案,包括:根據所述各個進程組在預設時間範圍內的CPU資源需求量,以所述進程組的CPU資源需求量的降序方式,對所述進程組排序,獲得進程組序列;以及,根據所述各個CPU在所述預設時間範圍內的空閒資源值,以所述CPU的空閒資源值的降序方式,對各個CPU進行排序,獲得CPU序列;將所述進程組序列中排在第一位的進程組作為當前進程組;根據所述當前進程組需要的CPU數量,在所述CPU序列中,從排在第一位的CPU開始,依次選取所述當前進程組所需數量的CPU,並將被選取的CPU分配給所述當前進程組;根據所述當前進程組在每個CPU上的執行時間,更新被分配的CPU的空閒資源值;重新根據各個CPU的空閒資源值,以所述CPU的空閒資源值的降序方式,更新所述CPU序列;判斷所述當前進程組是否是所述進程組序列的最後一 個進程組;若是,則所述CPU資源配置方案生成完畢;若否,則根據所述進程組排序,重新確定所述當前進程組後一位的進程組為當前進程組;並返回所述根據所述當前進程組需要的CPU數量,在所述CPU序列中,從排在第一位的CPU開始,依次選取所述當前進程組所需數量的CPU,並將被選取的CPU分配給所述當前進程組的步驟。
  10. 根據申請專利範圍第1-9項任一項所述的CPU資源配置的方法,其中,當預設的執行條件成立時,執行所述CPU資源配置的方法。
  11. 根據申請專利範圍第10項所述的CPU資源配置的方法,其中,所述預設的執行條件,採用如下條件:當前時間與上次執行所述CPU資源配置的方法的時間間隔大於預設的時間間隔。
  12. 根據申請專利範圍第10項所述的CPU資源配置的方法,其中,所述預設的執行條件,採用如下條件:各個CPU的CPU利用率的最大值大於預設閾值。
  13. 根據申請專利範圍第10項所述的CPU資源配置的方法,其中,所述預設的執行條件,採用如下條件:各個CPU的CPU利用率的最大值大於各個CPU的CPU利用率的最小值的N倍。
  14. 根據申請專利範圍第10項所述的CPU資源配置的方法,其中,所述預設的執行條件,採用如下條件: 各個CPU的CPU利用率的最大值大於預設閾值;並且各個CPU的CPU利用率的最大值大於各個CPU的CPU利用率的最小值的N倍。
  15. 一種CPU資源配置的裝置,其中,包括:獲取單元,用於獲取所述多處理器設備中運行的各個進程組在預設時間範圍內的CPU資源需求量,以及所述多處理器設備中各個CPU在所述預設時間範圍內的空閒資源值;分配單元,用於根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空閒資源值,為每一個進程組分配其所需數量的處理器。
  16. 根據申請專利範圍第15項所述的CPU資源配置的裝置,其中,所述獲取單元包括:第一獲取子單元,用於獲取所述各個進程組在預設時間範圍內的CPU資源需求量;所述第一獲取子單元包括:監測子單元,用於獲取所述預設時間範圍內所述各個進程組在每個CPU上的執行時間;計算子單元,用於將所述預設時間範圍內所述各個進程組在每個CPU上的執行時間以進程組為單位分別求和,作為所述各個進程組在預設時間範圍內的CPU資源需求量。
  17. 根據申請專利範圍第15項所述的CPU資源配置 的裝置,其中,所述獲取單元包括:第二獲取子單元,用於獲取所述各個CPU在預設時間範圍內的空閒資源值;所述第二獲取子單元包括:監測子單元,用於獲取所述預設時間範圍內所述各個CPU處於運行狀態的時間;計算子單元,用於將所述預設時間範圍和所述預設時間範圍內所述各個CPU處於運行狀態的時間之差,作為所述各個CPU在所述預設時間範圍內的空閒資源值。
  18. 根據申請專利範圍第15項所述的CPU資源配置的裝置,其中,所述分配單元包括:生成子單元,用於根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空閒資源值,生成CPU資源配置方案;配置子單元,用於配置所述CPU資源配置方案,將每一個進程組綁定到為其分配的處理器。
  19. 根據申請專利範圍第18項所述的CPU資源配置的裝置,其中,所述生成子單元包括:初始排序子單元,用於根據所述各個進程組在預設時間範圍內的CPU資源需求量,以所述進程組的CPU資源需求量的降序方式,對所述進程組排序,獲得進程組序列;以及,根據所述各個CPU在所述預設時間範圍內的空閒資源值,以所述CPU的空閒資源值的降序方式,對各個CPU進行排序,獲得CPU序列; 第一定位子單元,用於將所述進程組序列中排在第一位的進程組作為當前進程組;分配子單元,用於根據所述當前進程組需要的CPU數量,在所述CPU序列中,從排在第一位的CPU開始,依次選取所述當前進程組所需數量的CPU,並將被選取的CPU分配給所述當前進程組;更新子單元,用於根據所述當前進程組在每個CPU上的執行時間,更新被分配的CPU的空閒資源值;重新排序子單元,用於重新根據各個CPU的空閒資源值,以所述CPU的空閒資源值的降序方式,更新所述CPU序列;判斷子單元,用於判斷所述當前進程組是否是所述進程組序列的最後一個進程組;結束子單元,用於若上述判斷結果為是,則所述CPU資源配置方案生成完畢;第二定位子單元,用於若上述判斷結果為否,則根據所述進程組排序,重新確定所述當前進程組後一位的進程組為當前進程組;並返回所述根據所述當前進程組需要的CPU數量,在所述CPU序列中,從排在第一位的CPU開始,依次選取所述當前進程組所需數量的CPU,並將被選取的CPU分配給所述當前進程組的步驟。
  20. 根據申請專利範圍第15-19項任一項所述的CPU資源配置的裝置,其中,所述裝置還包括:啟動單元,用於當預設的執行條件成立時,執行所述 CPU資源配置的方法。
  21. 一種電子設備,其中,所述電子設備包括:記憶體;以及多個處理器,在所述多個處理器中運行多個進程組,所述進程組被所述多個處理器執行時,採用如下方式為各個進程組分配處理器資源:獲取所述電子設備中運行的各個進程組在預設時間範圍內的CPU資源需求量,以及所述電子設備中各個CPU在所述預設時間範圍內的空閒資源值;根據所述各個進程組在預設時間範圍內的CPU資源需求量,以及所述各個CPU在所述預設時間範圍內的空閒資源值,為每一個進程組分配其所需數量的處理器。
TW104128806A 2015-02-03 2015-09-01 一種cpu資源分配的方法、裝置及電子設備 TW201629759A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510055803.1A CN105988872B (zh) 2015-02-03 2015-02-03 一种cpu资源分配的方法、装置及电子设备

Publications (1)

Publication Number Publication Date
TW201629759A true TW201629759A (zh) 2016-08-16

Family

ID=56554319

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104128806A TW201629759A (zh) 2015-02-03 2015-09-01 一種cpu資源分配的方法、裝置及電子設備

Country Status (7)

Country Link
US (1) US10089150B2 (zh)
EP (1) EP3254192A4 (zh)
JP (1) JP6725521B2 (zh)
KR (1) KR102514478B1 (zh)
CN (1) CN105988872B (zh)
TW (1) TW201629759A (zh)
WO (1) WO2016126880A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI724505B (zh) * 2019-03-08 2021-04-11 開曼群島商創新先進技術有限公司 提升cpu並行性能的方法及裝置和電子設備
TWI749554B (zh) * 2019-12-20 2021-12-11 大陸商支付寶(杭州)信息技術有限公司 資源結算方法及裝置、電子設備、儲存媒體

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775975B (zh) * 2016-12-08 2020-02-14 青岛海信移动通信技术股份有限公司 进程调度方法及装置
CN113535382A (zh) * 2016-12-23 2021-10-22 创新先进技术有限公司 资源处理方法及装置
US11531552B2 (en) 2017-02-06 2022-12-20 Microsoft Technology Licensing, Llc Executing multiple programs simultaneously on a processor core
CN107436838A (zh) * 2017-07-12 2017-12-05 北京潘达互娱科技有限公司 一种内核数据统计方法与装置
CN107479976A (zh) * 2017-08-14 2017-12-15 郑州云海信息技术有限公司 一种多程序实例同时运行下cpu资源分配方法及装置
CN110069338B (zh) * 2018-01-24 2024-03-19 中兴通讯股份有限公司 资源控制方法、装置及设备、计算机可读存储介质
US11042398B2 (en) 2018-07-09 2021-06-22 Samsung Electronics Co., Ltd. System and method for guest operating system using containers
CN113407317A (zh) * 2018-09-11 2021-09-17 华为技术有限公司 一种资源调度方法及装置
CN110928649A (zh) * 2018-09-19 2020-03-27 北京国双科技有限公司 资源调度的方法和装置
CN111240824B (zh) * 2018-11-29 2023-05-02 中兴通讯股份有限公司 一种cpu资源调度方法及电子设备
CN109936627A (zh) * 2019-02-21 2019-06-25 山东浪潮云信息技术有限公司 一种基于hadoop的自动数据均衡方法及工具
CN112114958A (zh) * 2019-06-21 2020-12-22 上海哔哩哔哩科技有限公司 资源隔离方法、分布式平台、计算机设备和存储介质
CN113535378A (zh) * 2020-04-20 2021-10-22 深圳Tcl数字技术有限公司 一种资源调配方法、存储介质及终端设备
CN111708633A (zh) * 2020-05-28 2020-09-25 北京赛博云睿智能科技有限公司 一种资源动态调整方法及系统
CN112039963B (zh) * 2020-08-21 2023-04-07 广州虎牙科技有限公司 一种处理器的绑定方法、装置、计算机设备和存储介质
CN113485730A (zh) * 2021-06-28 2021-10-08 北京金茂绿建科技有限公司 升级方法以及计算机可读存储介质
CN113825240B (zh) * 2021-09-15 2024-04-05 杭州阿里云飞天信息技术有限公司 资源分配方法及基站设备
CN114706671B (zh) * 2022-05-17 2022-08-12 中诚华隆计算机技术有限公司 一种多处理器调度优化方法与系统
WO2024100797A1 (ja) * 2022-11-09 2024-05-16 日本電信電話株式会社 リソース制御装置、リソース制御方法及びプログラム

Family Cites Families (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4354227A (en) 1979-11-19 1982-10-12 International Business Machines Corp. Fixed resource allocation method and apparatus for multiprocessor systems having complementarily phased cycles
US4847755A (en) 1985-10-31 1989-07-11 Mcc Development, Ltd. Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies
US5325525A (en) 1991-04-04 1994-06-28 Hewlett-Packard Company Method of automatically controlling the allocation of resources of a parallel processor computer system by calculating a minimum execution time of a task and scheduling subtasks against resources to execute the task in the minimum time
US5787453A (en) 1995-10-24 1998-07-28 Peoplesoft, Inc. Interactive formula processing system for SQL data base
JP3188862B2 (ja) * 1997-12-24 2001-07-16 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 消費電力解析方法及び装置
US6360263B1 (en) 1998-02-25 2002-03-19 International Business Machines Corporation Dynamic resource allocation for user management in multi-processor time shared computer systems
US6389331B1 (en) * 1999-03-11 2002-05-14 Johnson Controls Technology Company Technique for monitoring performance of a facility management system
US6460122B1 (en) 1999-03-31 2002-10-01 International Business Machine Corporation System, apparatus and method for multi-level cache in a multi-processor/multi-controller environment
US6957432B2 (en) 2000-03-21 2005-10-18 Microsoft Corporation Real-time scheduler
US6920516B2 (en) 2000-08-31 2005-07-19 Hewlett-Packard Development Company, L.P. Anti-starvation interrupt protocol
US6915516B1 (en) * 2000-09-29 2005-07-05 Emc Corporation Apparatus and method for process dispatching between individual processors of a multi-processor system
US7403952B2 (en) 2000-12-28 2008-07-22 International Business Machines Corporation Numa system resource descriptors including performance characteristics
US7036123B2 (en) 2001-04-25 2006-04-25 Sun Microsystems, Inc. System using fair-share scheduling technique to schedule processes within each processor set based on the number of shares assigned to each process group
US7594229B2 (en) 2001-10-09 2009-09-22 Nvidia Corp. Predictive resource allocation in computing systems
US7152124B1 (en) 2002-02-11 2006-12-19 Extreme Networks Method and system for maintaining temporal consistency of resources and data in a multiple-processor packet switch
JP2003256221A (ja) * 2002-02-28 2003-09-10 Fujitsu Ltd 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ
US7194385B2 (en) * 2002-11-12 2007-03-20 Arm Limited Performance level setting of a data processing system
US7007183B2 (en) 2002-12-09 2006-02-28 International Business Machines Corporation Power conservation by turning off power supply to unallocated resources in partitioned data processing systems
US8776050B2 (en) 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US8230426B2 (en) 2004-10-06 2012-07-24 Digipede Technologies, Llc Multicore distributed processing system using selection of available workunits based on the comparison of concurrency attributes with the parallel processing characteristics
US7933855B2 (en) 2005-03-16 2011-04-26 British Telecommunications Public Limited Company Monitoring computer-controlled processes through a monitoring system
EP1862904A4 (en) * 2005-03-22 2009-06-03 Fujitsu Ltd DISTRIBUTED PROCESS MANAGEMENT DEVICE, DISTRIBUTED PROCESS MANAGEMENT METHOD, AND DISTRIBUTED PROCESS MANAGEMENT PROGRAM
US7904912B2 (en) * 2005-08-30 2011-03-08 International Business Machines Corporation Adaptive processor utilization reporting handling different processor frequencies
US20070177195A1 (en) 2005-10-31 2007-08-02 Treber Rebert Queue processor for document servers
JP2007156976A (ja) * 2005-12-07 2007-06-21 Hitachi Kokusai Electric Inc 情報処理システム
JP4977375B2 (ja) 2006-02-15 2012-07-18 Necエナジーデバイス株式会社 リチウムイオン電池およびそれを用いた組電池
JP4523921B2 (ja) * 2006-02-24 2010-08-11 三菱電機株式会社 計算機リソース動的制御装置
US8261277B2 (en) 2006-04-10 2012-09-04 General Electric Company System and method for dynamic allocation of resources in a computing grid
JP5110315B2 (ja) 2006-05-24 2012-12-26 日本電気株式会社 仮想マシン管理装置、仮想マシン管理方法およびプログラム
US8838940B2 (en) * 2006-06-07 2014-09-16 Azul Systems, Inc. CPU utilization metering on systems that include multiple hardware threads per core
JP4370313B2 (ja) * 2006-07-10 2009-11-25 三菱電機株式会社 制御装置、制御装置のプロセス制御方法およびプロセス制御プログラム
US7941805B2 (en) * 2006-08-15 2011-05-10 International Business Machines Corporation Affinity dispatching load balancer with precise CPU consumption data
US8667500B1 (en) 2006-10-17 2014-03-04 Vmware, Inc. Use of dynamic entitlement and adaptive threshold for cluster process balancing
US8656405B2 (en) * 2007-06-25 2014-02-18 International Business Machines Corporation Pulling heavy tasks and pushing light tasks across multiple processor units of differing capacity
US8326970B2 (en) 2007-11-05 2012-12-04 Hewlett-Packard Development Company, L.P. System and method for modeling a session-based system with a transaction-based analytic model
US8645965B2 (en) 2007-12-31 2014-02-04 Intel Corporation Supporting metered clients with manycore through time-limited partitioning
US8175863B1 (en) 2008-02-13 2012-05-08 Quest Software, Inc. Systems and methods for analyzing performance of virtual environments
US8392924B2 (en) * 2008-04-03 2013-03-05 Sharp Laboratories Of America, Inc. Custom scheduling and control of a multifunction printer
KR20090108868A (ko) 2008-04-14 2009-10-19 삼성전자주식회사 가상 머신 관리 시스템 및 그의 프로세서 자원 관리방법
US7987075B2 (en) * 2008-06-30 2011-07-26 Hitachi, Ltd Apparatus and method to develop multi-core microcomputer-based systems
US8127160B2 (en) * 2008-10-13 2012-02-28 International Business Machines Corporation Dynamic frequency and voltage scaling for a computer processor
KR101543326B1 (ko) * 2009-01-05 2015-08-10 삼성전자주식회사 시스템 온 칩 및 그 구동 방법
JP5377093B2 (ja) * 2009-06-08 2013-12-25 三菱電機株式会社 計算機システム、計算機リソース制御方法および計算機リソース制御プログラム
US8276142B2 (en) * 2009-10-09 2012-09-25 Intel Corporation Hardware support for thread scheduling on multi-core processors
US8914469B2 (en) 2009-12-11 2014-12-16 International Business Machines Corporation Negotiating agreements within a cloud computing environment
US9176572B2 (en) * 2009-12-16 2015-11-03 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9104411B2 (en) * 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9081501B2 (en) * 2010-01-08 2015-07-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
JP5465105B2 (ja) * 2010-06-21 2014-04-09 三菱電機株式会社 計算機システム及びコンピュータプログラム及びパイプライン処理方法
JP5572527B2 (ja) 2010-11-09 2014-08-13 パナソニック株式会社 通信処理装置及び通信処理方法
US9804893B2 (en) 2011-04-08 2017-10-31 Qualcomm Incorporated Method and apparatus for optimized execution using resource utilization maps
US8683466B2 (en) 2011-05-24 2014-03-25 Vmware, Inc. System and method for generating a virtual desktop
US9086883B2 (en) * 2011-06-10 2015-07-21 Qualcomm Incorporated System and apparatus for consolidated dynamic frequency/voltage control
CN102958166B (zh) * 2011-08-29 2017-07-21 华为技术有限公司 一种资源分配方法及资源管理平台
US8881164B2 (en) 2011-10-18 2014-11-04 Hewlett-Packard Development Company, L.P. Computer process with utilization reduction
WO2013132767A1 (ja) * 2012-03-09 2013-09-12 パナソニック株式会社 プロセッサ、マルチプロセッサシステム、コンパイラ、ソフトウェアシステム、メモリ制御システムおよびコンピュータシステム
KR101834195B1 (ko) * 2012-03-15 2018-04-13 삼성전자주식회사 다중코어 시스템 및 로드 밸런싱 방법
CN103164283B (zh) * 2012-05-10 2018-08-10 上海兆民云计算科技有限公司 一种虚拟桌面系统中虚拟化资源动态调度管理方法及系统
US9298469B2 (en) 2012-06-15 2016-03-29 International Business Machines Corporation Management of multiple nested transactions
CN102866921B (zh) 2012-08-29 2016-05-11 惠州Tcl移动通信有限公司 一种多核cpu的调控方法及系统
US9116703B2 (en) * 2012-10-15 2015-08-25 Advanced Micro Devices, Inc. Semi-static power and performance optimization of data centers
US9052932B2 (en) 2012-12-17 2015-06-09 International Business Machines Corporation Hybrid virtual machine configuration management
US9195506B2 (en) 2012-12-21 2015-11-24 International Business Machines Corporation Processor provisioning by a middleware processing system for a plurality of logical processor partitions
JPWO2014109019A1 (ja) * 2013-01-09 2017-01-19 三菱電機株式会社 プラントエンジニアリングシステム
US9785460B2 (en) * 2013-05-03 2017-10-10 Vmware, Inc. Dynamic virtual machine sizing
KR102090306B1 (ko) * 2013-06-28 2020-03-17 삼성전자주식회사 멀티 코어 시스템에서 태스크를 분배하기 위한 방법 및 그 전자 장치
US9342374B2 (en) * 2013-06-28 2016-05-17 Dell Products, L.P. Method of scheduling threads for execution on multiple processors within an information handling system
US10217183B2 (en) 2013-12-20 2019-02-26 Nvidia Corporation System, method, and computer program product for simultaneous execution of compute and graphics workloads
US9836423B2 (en) 2014-07-25 2017-12-05 Netapp, Inc. Adaptive circuit board assembly and flexible PCI express bus

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI724505B (zh) * 2019-03-08 2021-04-11 開曼群島商創新先進技術有限公司 提升cpu並行性能的方法及裝置和電子設備
US11080094B2 (en) 2019-03-08 2021-08-03 Advanced New Technologies Co., Ltd. Method, apparatus, and electronic device for improving parallel performance of CPU
TWI749554B (zh) * 2019-12-20 2021-12-11 大陸商支付寶(杭州)信息技術有限公司 資源結算方法及裝置、電子設備、儲存媒體

Also Published As

Publication number Publication date
WO2016126880A1 (en) 2016-08-11
EP3254192A4 (en) 2018-11-07
EP3254192A1 (en) 2017-12-13
CN105988872A (zh) 2016-10-05
KR102514478B1 (ko) 2023-03-24
KR20170110615A (ko) 2017-10-11
JP6725521B2 (ja) 2020-07-22
JP2018511850A (ja) 2018-04-26
US10089150B2 (en) 2018-10-02
CN105988872B (zh) 2020-02-18
US20160224387A1 (en) 2016-08-04

Similar Documents

Publication Publication Date Title
TW201629759A (zh) 一種cpu資源分配的方法、裝置及電子設備
US20190220319A1 (en) Usage instrumented workload scheduling
Palanisamy et al. Purlieus: locality-aware resource allocation for MapReduce in a cloud
AU2014309371B2 (en) Virtual hadoop manager
RU2571366C2 (ru) Виртуальная архитектура неоднородного доступа к памяти для виртуальных машин
Villegas et al. An analysis of provisioning and allocation policies for infrastructure-as-a-service clouds
JP5577412B2 (ja) 計算機システム、マイグレーション方法及び管理サーバ
US8402470B2 (en) Processor thread load balancing manager
CN102541460B (zh) 一种多磁盘场景下的磁盘管理方法和设备
US20120066683A1 (en) Balanced thread creation and task allocation
US20160139949A1 (en) Virtual machine resource management system and method thereof
Chard et al. Cost-aware cloud provisioning
US11188387B2 (en) Administrative resource management QoS for storage appliances
Elshater et al. A study of data locality in YARN
Chard et al. An automated tool profiling service for the cloud
US10976934B2 (en) Prioritizing pages to transfer for memory sharing
JP7319196B2 (ja) 車両スケジューリングのために車両相互依存性を解決するためのコンピュータ化されたシステムおよび方法
US10592297B2 (en) Use minimal variance to distribute disk slices to avoid over-commitment
Wang et al. Improving utilization through dynamic VM resource allocation in hybrid cloud environment
Villegas et al. An analysis of provisioning and allocation policies for infrastructure-as-a-service clouds: extended results
Ari et al. Hybrid job scheduling for improved cluster utilization
Janardhanan et al. Study of execution parallelism by resource partitioning in Hadoop YARN
Cattermole et al. An automated approach to cloud performance benchmarking
WO2023226437A1 (zh) 一种资源调度方法、装置及设备
Goraya et al. Map-reduce synchronized and comparative queue capacity scheduler in Hadoop for extensive data