Cpu使用率的控制方法和裝置的制造方法
【專利摘要】本申請公開了一種CPU使用率的控制方法,包括:啟動工作進程,其中,工作進程與目標CPU具有綁定關系;獲取目標CPU的當前使用率和目標使用率,并獲取當前使用率和目標使用率之間的誤差值;根據誤差值生成工作進程的工作時間;以及根據工作進程的工作時間對工作進程進行控制。該方法能夠使得在CPU使用率控制時達到效果穩定、實時性高和精確性高的特點。本申請還公開了一種CPU使用率的控制裝置。
【專利說明】
CPU使用率的控制方法和裝置
技術領域
[0001] 本申請涉及計算機技術領域,尤其涉及CPU使用率的控制方法和裝置。
【背景技術】
[0002] 目前,在很多高可靠性的軟件測試中,很重要的一個測試場景是軟件在高壓力下 的性能測試。而這種高壓力往往表現為CPU使用率很高。又如,在很多高可靠性系統中,需 要強大的災難處理預案和容災保護機制來支撐,而大多數的容災保護機制都依賴一種監控 裝置,這種裝置能夠實時監控系統狀態,如CPU使用率、內存使用率等。由于當某種系統狀 態達到某個精確的設定值時,將會觸發容災保護機制來自動實施某一種處理預案,因此,在 這種容災機制的測試過程當中,精確模擬實時控制CPU使用率就變得十分必要。
[0003] 相關技術中,CPU使用率的控制方法一般通過以下步驟實現:1)啟動一定數量工 作線程;2)每個線程按照一定比例做一定時間的計算,拉高CPU使用率;3)如果達到期望 值,就停止啟動線程;4)如果沒有達到期望值,則繼續啟動更多線程;5)重復步驟3)、步驟 4)直到達到期望值。
[0004] 但是存在的問題是:1)對于多核心的CPU,由于上述方法啟動大量線程的做法會 使CPU在線程間頻繁切換,程序本身會造成過多的CPU占用,導致CPU使用率不穩定;2) 需要通過線程的啟動和銷毀來控制CPU使用率,由于較多的線程啟動和銷毀都需要一定時 間,會導致CPU的調節實時性很差,滯后嚴重;3)無法消除系統中的靜態誤差,會導致CPU 使用率距離期望值有一定誤差,且這一誤差與具體環境密切相關,無法預測。
【發明內容】
[0005] 本申請的目的旨在至少在一定程度上解決上述的技術問題之一。
[0006] 為此,本申請的第一個目的在于提出一種CPU使用率的控制方法,該方法能夠使 得在CPU使用率控制時達到效果穩定、實時性高和精確性高的特點。
[0007] 本申請的第二個目的在于提出一種CPU使用率的控制裝置。
[0008] 為了實現上述目的,本申請第一方面實施例的CPU使用率的控制方法,包括:啟動 工作進程,其中,所述工作進程與目標CPU具有綁定關系;獲取所述目標CPU的當前使用率 和目標使用率,并獲取所述當前使用率和目標使用率之間的誤差值;根據所述誤差值生成 所述工作進程的工作時間;以及根據所述工作進程的工作時間對所述工作進程進行控制。
[0009] 本申請實施例的CPU使用率的控制方法能夠使得在CPU控制過程中具有如下優 點:1)效果穩定:由于啟動跟CPU核心相同數量的工作進程,并且進行了 CPU核心的綁定, 使控制程序本身的CPU消耗可以忽略;2)實時性高:由于引入了 PID控制算法,可以使得 CPU控制程序非常靈敏,在每個采樣周期內,都會計算比例項和積分項,滯后時間可控,為一 個采樣周期;3)精確性高:由于PID控制算法的積分項可以消除系統中的靜態誤差,所以可 以適應各種不同系統,能夠自動學習到系統中的靜態誤差,從而達到非常高的精確性,誤差 可以控制在較小值(如1% )以內。
[0010] 為了實現上述目的,本申請第二方面實施例的CPU使用率的控制裝置,包括:啟動 模塊,用于啟動工作進程,其中,所述工作進程與目標CPU具有綁定關系;獲取模塊,用于獲 取所述目標CPU的當前使用率和目標使用率,并獲取所述當前使用率和目標使用率之間的 誤差值;生成模塊,用于根據所述誤差值生成所述工作進程的工作時間;以及控制模塊,用 于根據所述工作進程的工作時間對所述工作進程進行控制。
[0011] 本申請實施例的CPU使用率的控制裝置能夠使得在CPU控制過程中具有如下優 點:1)效果穩定:由于啟動跟CPU核心相同數量的工作進程,并且進行了 CPU核心的綁定, 使控制程序本身的CPU消耗可以忽略;2)實時性高:由于引入了 PID控制算法,可以使得 CPU控制程序非常靈敏,在每個采樣周期內,都會計算比例項和積分項,滯后時間可控,為一 個采樣周期;3)精確性高:由于PID控制算法的積分項可以消除系統中的靜態誤差,所以可 以適應各種不同系統,能夠自動學習到系統中的靜態誤差,從而達到非常高的精確性,誤差 可以控制在較小值(如1% )以內。
[0012] 本申請附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變 得明顯,或通過本申請的實踐了解到。
【附圖說明】
[0013] 本申請上述的和/或附加的方面和優點從下面結合附圖對實施例的描述中將變 得明顯和容易理解,其中,
[0014] 圖1是根據本申請一個實施例的CPU使用率的控制方法的流程圖;
[0015] 圖2是PID控制算法的流程圖;
[0016] 圖3是根據本申請一個實施例的CPU使用率的控制裝置的結構示意圖;
[0017] 圖4是根據本申請另一個實施例的CPU使用率的控制裝置的結構示意圖;
[0018] 圖5是根據本申請又一個實施例的CPU使用率的控制裝置的結構示意圖。
【具體實施方式】
[0019] 下面詳細描述本申請的實施例,所述實施例的示例在附圖中示出,其中自始至終 相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附 圖描述的實施例是示例性的,旨在用于解釋本申請,而不能理解為對本申請的限制。
[0020] 下面參考附圖描述本申請實施例的CPU使用率的控制方法和裝置。
[0021] 圖1是根據本申請一個實施例的CPU使用率的控制方法的流程圖。需要說明的是, 在本申請的實施例中,CPU為多核CPU。為如圖1所示,該CPU使用率的控制方法可以包括:
[0022] S101,啟動工作進程,其中,工作進程與目標CPU具有綁定關系。
[0023] 具體地,對于多核CPU需要啟動多個工作進程,每個工作進程與一個目標CPU核心 相對應,并且進行綁定,即達到此進程只能在被綁定的目標CPU核心上工作。
[0024] S102,獲取目標CPU的當前使用率和目標使用率,并獲取當前使用率和目標使用 率之間的誤差值。
[0025] 具體地,可先獲取目標CPU的當前使用率和目標使用率,之后可檢查該目標CPU的 當前使用率是否大于或者等于目標使用率,如果是,則不作任何響應;如果否,則可根據目 標CPU的當前使用率和目標使用率計算當前使用率和目標使用率之間的誤差值,如誤差值 即為目標使用率與當前使用率之間的差值。其中,在本申請的實施例中,目標使用率可理解 為目標CPU的使用率將要達到的目標值,該目標使用率可以是根據實際場景情況預先設定 的。
[0026] 其中,在本申請的實施例中,獲取目標CPU的當前使用率的具體實現過程可為:分 別在第一采樣點和第二采樣點讀取/PR0C/STAT文件;根據/PR0C/STAT文件確定第一采樣 點和第二采樣點之間的總使用時間和空閑使用時間;以及根據第一采樣點和第二采樣點之 間的總使用時間和空閑使用時間獲取目標CPU的當前使用率。
[0027] 舉例而言,在Linux操作系統中,/PR0C/STAT文件記錄了 CPU的實時使用情況,上 述文件中各參數解釋如下:
[0028]
[0029] softirq 從系統啟動開始累計到當前時刻,軟中斷時間
[0030] 由于上述/proc/stat中的數值都是從系統啟動開始累計到當前時刻的積累值, 所以需要在不同時間點tl和t2 (即上述的第一采樣點和第二采樣點)取值進行比較運算, 當兩個時間點的間隔較短時,可以將這個計算結果作為目標CPU的當前使用率,即,可先分 別在不同的采樣點(即第一采樣點和第二采樣點)讀取/PR0C/STAT文件。之后,可計算第 二采樣點讀取到的/PR0C/STAT文件中的各個參數所對應的值(如user2、nice2、system2、 idle2、iowait2、irq2、softirq2),與第一采樣點讀取到的/PR0C/STAT文件中的各個參數 所對應的值(如 userl、nicel、systeml、idlel、iowaitl、irql、softirql)之間的差值,得 到的差值即為目標CPU在第一采樣點到第二采樣點時間段的總使用時間,即目標CPU在第 一采樣點到第二采樣點時間段的總使用時間=(user2+nice2+system2+idle2+iowait2+ir q2+softirq2) -(userl+nicel+systeml+idlel+iowaitl+irql+softirql) 〇然后,計算第二米 樣點讀取到的/PR0C/STAT文件中的參數idle (如idle2)與第一采樣點讀取到的/PR0C/ STAT文件中的參數idle (如idlel)之間的差值,得到的差值即為目標CPU在第一采樣點到 第二采樣點時間段的空閑使用時間,即,該空閑使用時間=(idle2-idlel)。最后,可通過以 下公式得到目標CPU在第一采樣點到第二采樣點時間段的當前使用率:目標CPU在第一采 樣點到第二采樣點時間段的當前使用率=1-CHJ空閑使用時間/CPU總的使用時間。
[0031] S103,根據誤差值生成工作進程的工作時間。
[0032] 具體而言,在本申請的實施例中,可通過以下公式生成工作進程的工作時間:
[0033]
⑴
[0034] 其中,u(t)為工作進程的工作時間,kp為比例項系數,e(x)為誤差值,β為積分項 的開關系數,1^為積分項系數,j為當前是第j次采樣,k為采樣的總次數,τ為采樣點(即 米樣時間)。
[0035] 此外,比例項系數kp可根據采樣周期確定。例如,比例項系數k p在當前場景下的 計算方法是:如果目標CPU的當前使用率計算的采樣周期是1秒,那么目標CPU在1秒鐘的 時間內全部在工作,則此時的CPU占用率為100%。那么要提升CPU的1 %的占用率,需要 使CPU工作10毫秒。由此得出,若最終計算出的工作進程的工作時間單位為毫秒,則比例 項系數k p應為10。此外,積分項系數k i的主要功能是去除靜態誤差,而每個Linux系統中 的靜態誤差都不相同,故積分項系數h是一個經驗值,可根據不同系統進行設定,從而可以 多次試驗找到最精確的值。
[0036] 需要說明的是,在本申請的實施例中,上述式(1)是通過PID控制算法得到的,即 根據誤差值計算PID控制算法的比例項及積分項,并根據得到的比例項及積分項轉換為工 作進程的工作時間。在過程控制中,按偏差的比例(P)、積分(I)和微分(D)進行控制的PID 控制器(亦稱PID調節器)是應用最為廣泛的一種自動控制器。如圖2所示,為PID控制 算法的流程圖:比例環節用于對偏差及時反應,偏差一旦產生,控制器即向著偏差減小的方 向變化;積分環節用于只要偏差存在,積分就會起作用,將偏差累計,對控制量產生影響,直 至偏差為0 ;微分環節用于預判偏差變化的趨勢,使偏差在萌芽狀態被抑制。
[0037] 具體地,根據設定值r(t)與實測值y(t)通過以下公式可構成偏差信號e(t):
[0038] e (t) = r (t) -y (t) (2)
[0039] 之后,可通過以下公式得出控制器輸入信號u(t):
[0040]⑶ a t.
[0041] 其中,kp為比例增益,T i為積分時間常數,T d為微分時間常數。
[0042] 然后,積分和微分可離散化近似分別表示如下式(4)和式(5),其中T為采樣間隔 時間:
[0043] ⑷
[0044] (5)
[0045] 然后,將上述式(4)和式(5)代入上述式(3)中,最終可得如下離散化表達式:
[0046]
C6):
[0047] 最后,在CPU使用率控制這一場景下,需要對以上PID控制算法做一些定制:首先, CPU使用率這一指標的變化趨勢和幅度往往不可預測,且變化有可能很頻繁,從而產生毛 刺,所以在PID控制算法中,需要舍棄微分項來避免輸入信號過多的被毛刺影響。其次,CPU 使用率產生較大幅度的波動時,很可能使積分項的累計誤差值過大,產生積分飽和,故應該 引入積分分離的方法來避免積分飽和,因此最終的公式形態如上述式(1)。
[0048] 其中,在本申請的一個實施例中,該CPU使用率的控制方法還可包括:根據誤差值 計算累計誤差值;當累計誤差值小于或等于預設閾值時,β為1;當累計誤差值大于預設 閾值時,β為0。具體地,可將誤差值進行累計求和以得到累計誤差值,如上述式(1)中的 Σμ./)即為累計誤差值。可以理解,由于CPU使用率波動的概率較大,這樣就會使某次的誤 差值變的很大,在積分項積累之后,引起積分飽和從而影響精確度,因此,可引入積分分離 (即上述積分項的開關系數β)即可解決這個問題,當誤差值小于或等于某一設定值,即累 計誤差值小于或等于預設閾值時,β為1,上述式a)中積分項才生效,當誤差值 大于某一設定值時,即累計誤差值大于上述預設閾值時,β為0,只有上述式(1)中的比例 項kpe(k)生效,此時可認為系統發生了較大變化,需要重新調整,此時清除積累的誤差(即 累計誤差),重新調整比例項。
[0049] 需要說明的是,在本申請的實施例中,如果當前整體CPU使用率小于目標使用率, 但是多核心CPU中每個CPU核心當前使用率各不相同,有的比目標使用率大,則此時可通過 以下兩種方法計算誤差值:
[0050] (1)在獲取目前CPU的當前使用率時,可分別獲取每個CPU核心的當前使用率,然 后分別計算每個CPU核心的當前使用率與目標使用率之間的誤差值,之后,可分別根據每 個誤差值生成每個CPU核心對應的工作進程的工作時間;
[0051] (2)可將每個CPU核心的當前使用率分別與目標使用率進行比較,如果大于,則這 個CPU核心對應的工作進程的工作時間就設置為0,然后從目標使用率減去高出的部分除 以CPU核心數所得的值,之后計算其他CPU核心對應的工作進程的工作時間。
[0052] S104,根據工作進程的工作時間對工作進程進行控制。
[0053] 具體地,在根據誤差值生成工作進程的工作時間之后,可將該工作進程的工作時 間設定到工作進程中,此時目標CPU使用率可將達到目標使用率附近。進一步的,以預設時 間(如1秒)為周期,重復執行上述步驟S102至S104,直至目標CPU使用率與目標使用率 之間的誤差達到理想誤差之內。
[0054] 進一步的,在本申請的一個實施例中,該CPU使用率的控制方法還可包括:將工作 進程的工作時間設置為零。也就是說,在上述步驟S101啟動工作進程的過程中,可對這些 工作進程進行初始化操作,在初始化這些工作進程時,可將這些工作進程對應的工作時間 設置為〇,以使工作進程休眠,不占用CPU資源。由此,使得獲取到的目標CPU的當前使用率 更加準確。
[0055] 綜上所述,通過本申請實施例的CPU使用率的控制方法能夠使得在CPU控制過程 中具有如下優點:
[0056] 1)效果穩定:由于啟動跟CPU核心相同數量的工作進程,并且進行了 CPU核心的 綁定,使控制程序本身的CPU消耗可以忽略;
[0057] 2)實時性高:由于引入了 PID控制算法,可以使得CPU控制程序非常靈敏,在每個 采樣周期內,都會計算比例項和積分項,滯后時間可控,為一個采樣周期;
[0058] 3)精確性高:由于PID控制算法的積分項可以消除系統中的靜態誤差,所以可以 適應各種不同系統,能夠自動學習到系統中的靜態誤差,從而達到非常高的精確性,誤差可 以控制在較小值(如1% )以內。
[0059] 與上述幾種實施例提供的CPU使用率的控制方法相對應,本申請的一種實施例還 提供一種CPU使用率的控制裝置,由于本申請實施例提供的CPU使用率的控制裝置與上述 幾種實施例提供的CPU使用率的控制方法相對應,因此在前述CPU使用率的控制方法的實 施方式也適用于本實施例提供的CPU使用率的控制裝置,在本實施例中不再詳細描述。圖3 是根據本申請一個實施例的CPU使用率的控制裝置的結構示意圖。如圖3所示,該CPU使 用率的控制裝置可以包括:啟動模塊10、獲取模塊20、生成模塊30和控制模塊40。
[0060] 具體地,啟動模塊10可用于啟動工作進程,其中,工作進程與目標CPU具有綁定關 系。
[0061] 獲取模塊20可用于獲取目標CPU的當前使用率和目標使用率,并獲取當前使用率 和目標使用率之間的誤差值。具體而言,在本申請的實施例中,獲取模塊20獲取目標CPU 的當前使用率的具體實現過程可為:分別在第一采樣點和第二采樣點讀取/PR0C/STAT文 件;根據/PR0C/STAT文件確定第一采樣點和第二采樣點之間的總使用時間和空閑使用時 間;以及根據第一采樣點和第二采樣點之間的總使用時間和空閑使用時間獲取目標CPU的 當前使用率。
[0062] 生成模塊30可用于根據誤差值生成工作進程的工作時間。具體而言,在本申請的 實施例中,生成模塊30可通過以下公式生成工作進程的工作時間:
[0063]
(?
[0064] 其中,u(t)為工作進程的工作時間,kp為比例項系數,e(x)為誤差值,β為積分項 的開關系數,1^為積分項系數,j為當前是第j次采樣,k為采樣的總次數,τ為采樣點(即 采樣時間)。此外,在本申請的實施例中,比例項系數k p可根據采樣周期確定。
[0065] 進一步,在本申請的一個實施例中,如圖4所示,該CPU使用率的控制裝置還可包 括計算模塊50,計算模塊50可用于根據誤差值計算累計誤差值。其中,在本申請的實施例 中,當累計誤差值小于預設閾值時,β為1;當累計誤差值小于預設閾值時,β為0。
[0066] 控制模塊40可用于根據工作進程的工作時間對工作進程進行控制。
[0067] 進一步的,在本申請的一個實施例中,如圖5所示,該CPU使用率的控制裝置還可 包括設置模塊60,設置模塊60可用于將工作進程的工作時間設置為零。也就是說,在上述 啟動模塊10啟動工作進程的過程中,設置模塊60可對這些工作進程進行初始化操作,在初 始化這些工作進程時,可將這些工作進程對應的工作時間設置為0,以使工作進程休眠,不 占用CPU資源。由此,使得獲取到的目標CPU的當前使用率更加準確。
[0068] 本申請實施例的CPU使用率的控制裝置能夠使得在CPU控制過程中具有如下優 點:1)效果穩定:由于啟動跟CPU核心相同數量的工作進程,并且進行了 CPU核心的綁定, 使控制程序本身的CPU消耗可以忽略;2)實時性高:由于引入了 PID控制算法,可以使得 CPU控制程序非常靈敏,在每個采樣周期內,都會計算比例項和積分項,滯后時間可控,為一 個采樣周期;3)精確性高:由于PID控制算法的積分項可以消除系統中的靜態誤差,所以可 以適應各種不同系統,能夠自動學習到系統中的靜態誤差,從而達到非常高的精確性,誤差 可以控制在較小值(如1% )以內。
[0069] 在本說明書的描述中,參考術語"一個實施例"、"一些實施例"、"示例"、"具體示 例"、或"一些示例"等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特 點包含于本申請的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不 必須針對的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任 一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技 術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特征進行結 合和組合。
[0070] 此外,術語"第一"、"第二"僅用于描述目的,而不能理解為指示或暗示相對重要性 或者隱含指明所指示的技術特征的數量。由此,限定有"第一"、"第二"的特征可以明示或 者隱含地包括至少一個該特征。在本申請的描述中,"多個"的含義是至少兩個,例如兩個, 三個等,除非另有明確具體的限定。
[0071] 流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括 一個或更多個用于實現特定邏輯功能或過程的步驟的可執行指令的代碼的模塊、片段或部 分,并且本申請的優選實施方式的范圍包括另外的實現,其中可以不按所示出或討論的順 序,包括根據所涉及的功能按基本同時的方式或按相反的順序,來執行功能,這應被本申請 的實施例所屬技術領域的技術人員所理解。
[0072] 在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認為是 用于實現邏輯功能的可執行指令的定序列表,可以具體實現在任何計算機可讀介質中,以 供指令執行系統、裝置或設備(如基于計算機的系統、包括處理器的系統或其他可以從指 令執行系統、裝置或設備取指令并執行指令的系統)使用,或結合這些指令執行系統、裝置 或設備而使用。就本說明書而言,"計算機可讀介質"可以是任何可以包含、存儲、通信、傳 播或傳輸程序以供指令執行系統、裝置或設備或結合這些指令執行系統、裝置或設備而使 用的裝置。計算機可讀介質的更具體的示例(非窮盡性列表)包括以下:具有一個或多個 布線的電連接部(電子裝置),便攜式計算機盤盒(磁裝置),隨機存取存儲器(RAM),只讀 存儲器(R0M),可擦除可編輯只讀存儲器(EPROM或閃速存儲器),光纖裝置,以及便攜式光 盤只讀存儲器(CDR0M)。另外,計算機可讀介質甚至可以是可在其上打印所述程序的紙或其 他合適的介質,因為可以例如通過對紙或其他介質進行光學掃描,接著進行編輯、解譯或必 要時以其他合適方式進行處理來以電子方式獲得所述程序,然后將其存儲在計算機存儲器 中。
[0073] 應當理解,本申請的各部分可以用硬件、軟件、固件或它們的組合來實現。在上述 實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執行系統執行的軟件 或固件來實現。例如,如果用硬件來實現,和在另一實施方式中一樣,可用本領域公知的下 列技術中的任一項或他們的組合來實現:具有用于對數據信號實現邏輯功能的邏輯門電路 的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現場 可編程門陣列(FPGA)等。
[0074] 本技術領域的普通技術人員可以理解實現上述實施例方法攜帶的全部或部分步 驟是可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介 質中,該程序在執行時,包括方法實施例的步驟之一或其組合。
[0075] 此外,在本申請各個實施例中的各功能單元可以集成在一個處理模塊中,也可以 是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模 塊既可以采用硬件的形式實現,也可以采用軟件功能模塊的形式實現。所述集成的模塊如 果以軟件功能模塊的形式實現并作為獨立的產品銷售或使用時,也可以存儲在一個計算機 可讀取存儲介質中。
[0076] 上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。盡管上面已經示出和描 述了本申請的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本申請的限 制,本領域的普通技術人員在本申請的范圍內可以對上述實施例進行變化、修改、替換和變 型。
【主權項】
1. 一種CPU使用率的控制方法,其特征在于,包括W下步驟: 啟動工作進程,其中,所述工作進程與目標CPU具有綁定關系; 獲取所述目標CPU的當前使用率和目標使用率,并獲取所述當前使用率和目標使用率 之間的誤差值; 根據所述誤差值生成所述工作進程的工作時間;W及 根據所述工作進程的工作時間對所述工作進程進行控制。2. 如權利要求1所述的CPU使用率的控制方法,其特征在于,通過W下公式生成所述工 作進程的工作時間:其中,u(t)為工作進程的工作時間,kp為比例項系數,e(x)為誤差值,0為積分項的 開關系數,ki為積分項系數,j為當前是第j次采樣,k為采樣的總次數,T為采樣點。3. 如權利要求2所述的CPU使用率的控制方法,其特征在于,還包括: 根據所述誤差值計算累計誤差值; 當所述累計誤差值小于或等于預設闊值時,P為1 ; 當所述累計誤差值大于所述預設闊值時,P為0。4. 如權利要求1所述的CPU使用率的控制方法,其特征在于,還包括: 將所述工作進程的工作時間設置為零。5. 如權利要求2所述的CPU使用率的控制方法,其特征在于,所述比例項系數k P根據 采樣周期確定。6. 如權利要求1所述的CPU使用率的控制方法,其特征在于,獲取所述目標CPU的當前 使用率具體包括: 分別在第一采樣點和第二采樣點讀取/PROC/STAT文件; 根據所述/PROC/STAT文件確定所述第一采樣點和第二采樣點之間的總使用時間和空 閑使用時間;W及 根據所述第一采樣點和第二采樣點之間的總使用時間和空閑使用時間獲取所述目標 CPU的當前使用率。7. -種CPU使用率的控制裝置,其特征在于,包括: 啟動模塊,用于啟動工作進程,其中,所述工作進程與目標CPU具有綁定關系; 獲取模塊,用于獲取所述目標CPU的當前使用率和目標使用率,并獲取所述當前使用 率和目標使用率之間的誤差值; 生成模塊,用于根據所述誤差值生成所述工作進程的工作時間;W及 控制模塊,用于根據所述工作進程的工作時間對所述工作進程進行控制。8. 如權利要求7所述的CPU使用率的控制裝置,其特征在于,所述生成模塊通過W下公 式生成所述工作進程的工作時間:其中,u(t)為工作進程的工作時間,kp為比例項系數,e(x)為誤差值,0為積分項的 開關系數,ki為積分項系數,j為當前是第j次采樣,k為采樣的總次數,T為采樣點。9. 如權利要求8所述的CPU使用率的控制裝置,其特征在于,還包括: 計算模塊,用于根據所述誤差值計算累計誤差值; 其中,當所述累計誤差值小于或等于預設闊值時,P為1 ;當所述累計誤差值大于所述 預設闊值時,P為0。10. 如權利要求7所述的CPU使用率的控制裝置,其特征在于,還包括: 設置模塊,用于將所述工作進程的工作時間設置為零。11. 如權利要求8所述的CPU使用率的控制裝置,其特征在于,所述比例項系數k P根據 采樣周期確定。12. 如權利要求7所述的CPU使用率的控制裝置,其特征在于,所述獲取模塊具體用 于: 分別在第一采樣點和第二采樣點讀取/PROC/STAT文件; 根據所述/PROC/STAT文件確定所述第一采樣點和第二采樣點之間的總使用時間和空 閑使用時間;W及 根據所述第一采樣點和第二采樣點之間的總使用時間和空閑使用時間獲取所述目標 CPU的當前使用率。
【文檔編號】G06F9/44GK106033345SQ201510117122
【公開日】2016年10月19日
【申請日】2015年3月17日
【發明人】王桐
【申請人】阿里巴巴集團控股有限公司