一種用于Linux系統(tǒng)的CPU子系統(tǒng)頻率調(diào)節(jié)方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種用于Linux系統(tǒng)的CPU子系統(tǒng)頻率調(diào)節(jié)方法和裝置。
【背景技術(shù)】
[0002]Iinux服務(wù)器在實際應(yīng)用中,并非所有時段均處于繁忙階段。而在一段空閑時間過后,對于突來的繁忙,有時CPU子系統(tǒng)處于節(jié)能狀態(tài)需及時去喚醒,在這個喚醒CPU子系統(tǒng)的時間內(nèi),可能由于CPU子系統(tǒng)未能及時響應(yīng)而導致數(shù)據(jù)丟包等情況發(fā)生。目前,通常通過將CPU子系統(tǒng)設(shè)置為最大性能狀態(tài)來解決上述問題,然而,在這種情況下,如果固定的將CPU子系統(tǒng)設(shè)置為最大性能狀態(tài),那么,當服務(wù)器無業(yè)務(wù)量時,CPU子系統(tǒng)也將一直運行等待任務(wù),造成功耗等資源的浪費。
【發(fā)明內(nèi)容】
[0003]有鑒于此,本發(fā)明實施例提供一種用于Linux系統(tǒng)的CPU子系統(tǒng)頻率調(diào)節(jié)方法和裝置,以解決現(xiàn)有技術(shù)中固定將(PU子系統(tǒng)設(shè)置為最大性能狀態(tài),那么,當服務(wù)器無業(yè)務(wù)量時,(PU子系統(tǒng)也將一直運行等待任務(wù),造成功耗等資源的浪費的問題。
[0004]為實現(xiàn)上述目的,本發(fā)明實施例提供如下技術(shù)方案:
[0005]—種用于Linux系統(tǒng)的CPU子系統(tǒng)頻率調(diào)節(jié)方法,包括:
[0006]通過CPUFreq將CPU子系統(tǒng)調(diào)節(jié)為conservative運行模式;
[0007]根據(jù)所述CPU子系統(tǒng)的預(yù)設(shè)采樣率采集所述CPU子系統(tǒng)的使用率;
[0008]若所述使用率大于預(yù)設(shè)升頻閾值,則對所述CTU子系統(tǒng)下達升頻命令,控制所述(PU子系統(tǒng)達到預(yù)設(shè)最大運行頻率;
[0009]若所述使用率小于預(yù)設(shè)降頻閾值,則對所述CTU子系統(tǒng)下達降頻命令,控制所述(PU子系統(tǒng)達到預(yù)設(shè)最小運行頻率,進入節(jié)能狀態(tài)。
[0010]其中,通過CPUFreq將CPU子系統(tǒng)調(diào)節(jié)為conservative運行模塊包括:
[0011]加載CPUFreq數(shù)據(jù)包;
[0012]通過Linux 命令 echo 將 conservative 參數(shù)寫入 CPUFreq 的 seal ing_governor 文件中。
[0013]其中,所述根據(jù)所述CPU子系統(tǒng)的預(yù)設(shè)采樣率采集所述CPU子系統(tǒng)的使用率前還包括:通過she 11腳本設(shè)置所述預(yù)設(shè)采樣頻率。
[0014]其中,所述CPU子系統(tǒng)頻率調(diào)節(jié)方法還包括:
[0015]記錄所述CPU子系統(tǒng)切換下達升頻命令和降頻命令的頻率;
[0016]若所述頻率大于第一預(yù)設(shè)閾值,則減小所述預(yù)設(shè)采樣率的數(shù)值,根據(jù)減小數(shù)值后的預(yù)設(shè)采樣率采集所述(PU子系統(tǒng)的使用率;
[0017]若所述頻率小于第二預(yù)設(shè)閾值,則增大所述預(yù)設(shè)采樣率的數(shù)值,根據(jù)增大數(shù)值后的預(yù)設(shè)采樣率采集所述(PU子系統(tǒng)的使用率。
[0018]其中,所述根據(jù)所述CPU子系統(tǒng)的預(yù)設(shè)采樣率采集所述CPU子系統(tǒng)的使用率前還包括:
[0019]設(shè)置最大米樣率和最小米樣頻率;
[0020]若所述預(yù)設(shè)采樣率大于最大采樣率,則根據(jù)所述最大采樣率采集所述CHJ子系統(tǒng)的使用率;
[0021]若所述預(yù)設(shè)采樣率小于最小采樣率,則根據(jù)所述最小采樣率采集所述CHJ子系統(tǒng)的使用率。
[0022]其中,所述根據(jù)所述CPU子系統(tǒng)的預(yù)設(shè)采樣率采集所述CPU子系統(tǒng)的使用率前還包括:通過shell腳本設(shè)置預(yù)設(shè)升頻閾值,在所述預(yù)設(shè)升頻閾值設(shè)置成功后通過shell腳本設(shè)置預(yù)設(shè)降頻閾值。
[0023]—種用于Linux系統(tǒng)的CPU子系統(tǒng)頻率調(diào)節(jié)裝置,包括:模式修改模塊、采樣模塊、升頻模塊和降頻模塊;其中,
[0024]所述模式修改模塊,用于通過CPUFreq將CPU子系統(tǒng)調(diào)節(jié)為conservative運行模式;
[0025]所述采樣模塊,用于根據(jù)所述CPU子系統(tǒng)的預(yù)設(shè)采樣率采集所述CPU子系統(tǒng)的使用率;
[0026]所述升頻模塊,用于當所述使用率大于預(yù)設(shè)升頻閾值時,對所述CPU子系統(tǒng)下達升頻命令,控制所述CPU子系統(tǒng)達到預(yù)設(shè)最大運行頻率;
[0027]所述降頻模塊,用于當所述使用率小于預(yù)設(shè)降頻閾值時,對所述CPU子系統(tǒng)下達降頻命令,控制所述CPU子系統(tǒng)達到預(yù)設(shè)最小運行頻率,進入節(jié)能狀態(tài)。
[0028]其中,所述模式修改模塊包括:加載單元和寫入單元;其中,
[0029]所述加載單元,用于加載CPUFreq數(shù)據(jù)包;
[0030]所述寫入單元,用于通過Linux命令echo將conservative參數(shù)寫入CPUFreq的seal ing_governor文件中。
[0031 ]其中,所述CPU子系統(tǒng)頻率調(diào)節(jié)裝置還包括:采樣率修改模塊,用于記錄所述CPU子系統(tǒng)切換下達升頻命令和降頻命令的頻率;若所述頻率大于預(yù)設(shè)閾值,則減小所述預(yù)設(shè)采樣率的數(shù)值;若所述頻率小于預(yù)設(shè)閾值,則增大所述預(yù)設(shè)采樣率的數(shù)值;
[0032]所述采樣模塊,還用于在所述采樣率修改模塊減小所述預(yù)設(shè)采樣率的數(shù)值后,根據(jù)減小數(shù)值后的預(yù)設(shè)采樣率采集所述CPU子系統(tǒng)的使用率;在所述采樣率修改模塊增大所述預(yù)設(shè)采樣率的數(shù)值后,根據(jù)增大數(shù)值后的預(yù)設(shè)采樣率采集所述(PU子系統(tǒng)的使用率。
[0033]其中,所述CPU子系統(tǒng)頻率調(diào)節(jié)裝置還包括:采樣率設(shè)置模塊,用于設(shè)置最大采樣率和最小米樣頻率;
[0034]所述采樣模塊,還用于當所述預(yù)設(shè)采樣率大于最大采樣率時,根據(jù)所述最大采樣率采集所述CHJ子系統(tǒng)的使用率;當所述預(yù)設(shè)采樣率小于最小采樣率時,根據(jù)所述最小采樣率采集所述(PU子系統(tǒng)的使用率。
[0035]基于上述技術(shù)方案,本發(fā)明實施例提供的用于Linux系統(tǒng)的CPU子系統(tǒng)頻率調(diào)節(jié)方法和裝置,通過CPUFreq將CPU子系統(tǒng)調(diào)節(jié)為conservative運行模式,然后根據(jù)所述CPU子系統(tǒng)的預(yù)設(shè)采樣率采集所述CPU子系統(tǒng)的使用率,在得到CPU子系統(tǒng)的使用率后,若該CPU子系統(tǒng)的使用率大于預(yù)設(shè)升頻閾值,則對該CPU子系統(tǒng)下達升頻命令,控制該CPU子系統(tǒng)達到預(yù)設(shè)最大運行頻率,若該CPU子系統(tǒng)的使用率小于預(yù)設(shè)降頻閾值,則對該CPU子系統(tǒng)下達降頻命令,控制該CHJ子系統(tǒng)達到預(yù)設(shè)最小運行頻率,進入節(jié)能狀態(tài)。根據(jù)預(yù)設(shè)采樣率實時采集CPU子系統(tǒng)的使用率,通過將該采集的使用率與預(yù)設(shè)升頻閾值和預(yù)設(shè)降頻閾值進行比對,來控制變更CHJ子系統(tǒng)的頻率,實現(xiàn)對CPU子系統(tǒng)頻率的智能調(diào)控,以達到智能降頻節(jié)約功耗及智能優(yōu)化(PU子系統(tǒng)性能的目的,對于Iinux服務(wù)器的實際應(yīng)用有較好的智能管理作用。
【附圖說明】
[0036]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0037]圖1為本發(fā)明實施例提供的用于Linux系統(tǒng)的CPU子系統(tǒng)頻率調(diào)節(jié)方法的流程圖;
[0038]圖2為本發(fā)明實施例提供的用于Linux系統(tǒng)的CPU子系統(tǒng)頻率調(diào)節(jié)方法中通過CPUFreq將CPU子系統(tǒng)調(diào)節(jié)為conservative運行模塊的方法流程圖;
[0039]圖3為本發(fā)明實施例提供的用于Linux系統(tǒng)的CPU子系統(tǒng)頻率調(diào)節(jié)方法中修改預(yù)設(shè)米樣率的方法流程圖;
[0040]圖4為本發(fā)明實施例提供的用于Linux系統(tǒng)的CPU子系統(tǒng)頻率調(diào)節(jié)方法中采用最大采樣率或最小采樣率采集CPU子系統(tǒng)的使用率的方法流程圖;
[0041]圖5為本發(fā)明實施例提供的用于Linux系統(tǒng)的CHJ子系統(tǒng)頻率調(diào)節(jié)裝置的系統(tǒng)框圖;
[0042]圖6為本發(fā)明實施例提供的用于Linux系統(tǒng)的CPU子系統(tǒng)頻率調(diào)節(jié)裝置中模式修改模塊100的結(jié)構(gòu)框圖;
[0043]圖7為本發(fā)明實施例提供的用于Linux系統(tǒng)的CPU子系統(tǒng)頻率調(diào)節(jié)裝置的另一系統(tǒng)框圖;
[0044]圖8為本發(fā)明實施例提供的用于Linux系統(tǒng)的CPU子系統(tǒng)頻率調(diào)節(jié)裝置的又一系統(tǒng)框圖。
【具體實施方式】
[0045]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0046]圖1為本發(fā)明實施例提供的用于Linux系統(tǒng)的CPU子系統(tǒng)頻率調(diào)節(jié)方法的流程圖,實現(xiàn)對CPU子系統(tǒng)頻率的智能調(diào)控,以達到智能降頻節(jié)約功耗及智能優(yōu)化CPU子系統(tǒng)性能的目的,對于Iinux服務(wù)器的實際應(yīng)用有較好的智能管理作用;參照圖1,該用于Linux系統(tǒng)的(PU子系統(tǒng)頻率調(diào)節(jié)方法可以包括:
[0047]步驟SlOO:通過CPUFreq將CPU子系統(tǒng)調(diào)節(jié)為conservative運行模式;
[0048]CI3UFreq為Linux系統(tǒng)下的一中動態(tài)頻率調(diào)節(jié)系統(tǒng),通過CPUFreq可以調(diào)節(jié)CPU(Central Processing Unit,中央處理器)子系統(tǒng)的運行模式。具體的,通過CPUFreq將CPU子系統(tǒng)調(diào)節(jié)為conservative運行模式,即保守運行模式,保守運行模塊。
[0049]可選的,可通過在加載CPUFreq數(shù)據(jù)包后,通過Linux命令echo將conservative參數(shù)寫入CPUFreq的seal ing_governor文件中,即設(shè)