過載保護方法、裝置及服務(wù)器的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及互聯(lián)網(wǎng)通信領(lǐng)域,尤其涉及一種過載保護方法、裝置及服務(wù)器。
【背景技術(shù)】
[0002] 客戶端與服務(wù)器之間的交互是目前應(yīng)用非常廣泛的一種網(wǎng)絡(luò)交互模式。其中,客 戶端通過請求與服務(wù)器通信,來完成各種數(shù)據(jù)交互。
[0003] 為了解決服務(wù)器接收到太多來自客戶端的請求時無法有效處理的情況,現(xiàn)有技術(shù) 中常應(yīng)用于服務(wù)器中的過載保護方法為,通過限制處理客戶端的每段預(yù)定采樣周期內(nèi)的請 求量來控制服務(wù)器負(fù)載,使服務(wù)器保持在某個負(fù)載水平之下。具體的,包括:定義一個變量 作為計數(shù)器,并初始化為〇,在一段預(yù)定采樣周期(例如1秒)內(nèi)累計計算接收并進(jìn)行處理 的請求數(shù),在這段時間間隔內(nèi),當(dāng)累計請求數(shù)不超過預(yù)定閾值(例如1000)時,正常處理請 求;在同一段時間間隔內(nèi),當(dāng)累計請求數(shù)超過預(yù)定閾值時,拒絕接受新的請求。超過該段時 間間隔后,重新把計數(shù)器置零,并重新計算下一段時間間隔內(nèi)接受的請求數(shù)。
[0004] 但是,一方面,每個請求消耗的性能可能不同,現(xiàn)有技術(shù)無法精確控制服務(wù)器的負(fù) 載;另一方面,如果在限制每段時間間隔的請求量的預(yù)定閾值時,評估每個請求的消耗性 能,評估又比較繁瑣;而且,對不同配置的服務(wù)器,需要進(jìn)行不同的請求書配置,配置管理復(fù) 雜。
【發(fā)明內(nèi)容】
[0005] 有鑒于此,本發(fā)明提供一種能夠精確控制服務(wù)器負(fù)載的負(fù)載保護方法、裝置及服 務(wù)器。
[0006] -種過載保護方法,包括:獲取預(yù)定采樣周期內(nèi)的CPU資源消耗數(shù)據(jù);計算在所述 預(yù)定采樣周期內(nèi),用于處理客戶端請求的進(jìn)程的CPU占用率;以及若所述CPU占用率超過預(yù) 定閾值,則拒絕所述進(jìn)程處理來自所述客戶端的請求,若所述CPU占用率未超過預(yù)定閾值, 所述進(jìn)程在下一個預(yù)定采樣周期繼續(xù)處理來自所述客戶端的請求。
[0007] -種過載保護裝置,包括:數(shù)據(jù)獲取模塊,用于獲取預(yù)定采樣周期內(nèi)的Cpu資源消 耗數(shù)據(jù);數(shù)據(jù)處理模塊,用于計算在所述預(yù)定采樣周期內(nèi),用于處理客戶端請求的進(jìn)程的 CPU占用率;以及請求處理模塊,用于若所述CPU占用率超過預(yù)定閾值,則拒絕所述進(jìn)程處 理來自所述客戶端的請求,若所述CPU占用率未超過預(yù)定閾值,所述進(jìn)程在下一個預(yù)定采 樣周期繼續(xù)處理來自所述客戶端的請求。
[0008] -種服務(wù)器,包括存儲器以及處理器,所述存儲器用于存儲本發(fā)明實施例提供的 過載保護裝置的模塊,所述處理器用于運行存儲在所述存儲器內(nèi)的所述過載保護裝置的模 塊。
[0009] 本發(fā)明實施例提供的過載保護方法、裝置及服務(wù)器,通過獲取用于處理客戶端請 求的進(jìn)程的CPU占用率來衡量該進(jìn)程的負(fù)載,相對于現(xiàn)有技術(shù)中根據(jù)請求數(shù)來控制服務(wù)器 負(fù)載的方法,精確度更高,而且無需針對不同的服務(wù)器進(jìn)行配置,針對各種服務(wù)器都可以實 現(xiàn)自動化管理,無需進(jìn)行手動干預(yù)。
[0010] 為讓本發(fā)明的上述和其他目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例, 并配合所附圖式,作詳細(xì)說明如下。
【附圖說明】
[0011] 圖1為本發(fā)明提供的一種過載保護方法及裝置的應(yīng)用環(huán)境圖。
[0012] 圖2示出了一種服務(wù)器的結(jié)構(gòu)框圖。
[0013] 圖3為本發(fā)明第一實施例提供的過載保護方法的流程圖。
[0014] 圖4為本發(fā)明第二實施例提供的過載保護方法的流程圖。
[0015] 圖5為本發(fā)明第二實施例提供的過載保護方法中部分流程的具體流程圖。
[0016] 圖6為本發(fā)明第三實施例提供的過載保護方法的流程圖。
[0017] 圖7為本發(fā)明第四實施例提供的過載保護裝置的結(jié)構(gòu)框圖。
[0018] 圖8為圖7的裝置的存儲環(huán)境示意圖。
[0019] 圖9為本發(fā)明第五實施例提供的過載保護裝置的結(jié)構(gòu)框圖。
【具體實施方式】
[0020] 為更進(jìn)一步闡述本發(fā)明為實現(xiàn)預(yù)定發(fā)明目的所采取的技術(shù)手段及功效,以下結(jié)合 附圖及較佳實施例,對依據(jù)本發(fā)明的【具體實施方式】、結(jié)構(gòu)、特征及其功效,詳細(xì)說明如后。
[0021] 本發(fā)明實施例所提供的過載保護方法可應(yīng)用于如圖1所示的應(yīng)用環(huán)境中,實現(xiàn)對 服務(wù)器的過載保護。如圖1所示,用戶終端100、服務(wù)器200位于無線網(wǎng)絡(luò)或有線網(wǎng)絡(luò)中,通 過該無線網(wǎng)絡(luò)或有線網(wǎng)絡(luò),用戶終端100裝載有各種客戶端與服務(wù)器200進(jìn)行數(shù)據(jù)交互。
[0022] 用戶終端100可以包括智能手機、平板電腦、電子書閱讀器、MP3播放器(Moving Picture Experts Group Audio Layer III,動態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面3)、 MP4 (Moving Picture Experts Group Audio Layer IV,動態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面 4) 播放器、膝上型便攜計算機、臺式機計算機、車載電腦、穿戴設(shè)備等等。
[0023] 圖2示出了一種服務(wù)器的結(jié)構(gòu)框圖。如圖2所示,服務(wù)器200包括:存儲器201、 處理器202以及網(wǎng)絡(luò)模塊203。
[0024] 可以理解,圖2所示的結(jié)構(gòu)僅為示意,服務(wù)器200還可包括比圖2中所示更多或者 更少的組件,或者具有與圖2所示不同的配置。圖2中所示的各組件可以采用硬件、軟件或 其組合實現(xiàn)。另外,本發(fā)明實施例中的服務(wù)器還可以包括多個具體不同功能的服務(wù)器。
[0025] 存儲器201可用于存儲軟件程序以及模塊,如本發(fā)明實施例中的過載保護方法及 裝置對應(yīng)的程序指令/模塊,處理器202通過運行存儲在存儲器201內(nèi)的軟件程序以及模 塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實現(xiàn)本發(fā)明實施例中的過載保護方法。存儲 器201可包括高速隨機存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、 閃存、或者其他非易失性固態(tài)存儲器。在一些實例中,存儲器201可進(jìn)一步包括相對于處理 器202遠(yuǎn)程設(shè)置的存儲器,這些遠(yuǎn)程存儲器可以通過網(wǎng)絡(luò)連接至服務(wù)器200。進(jìn)一步地,上 述軟件程序以及模塊還可包括:服務(wù)模塊221以及操作系統(tǒng)222。其中操作系統(tǒng)222,例如 可為LINUX、UNIX、WINDOWS,其可包括各種用于管理系統(tǒng)任務(wù)(例如內(nèi)存管理、存儲設(shè)備控 制、電源管理等)的軟件組件和/或驅(qū)動,并可與各種硬件或軟件組件相互通訊,從而提供 其他軟件組件的運行環(huán)境。服務(wù)模塊221運行在操作系統(tǒng)222的基礎(chǔ)上,并通過操作系統(tǒng) 222的網(wǎng)絡(luò)服務(wù)監(jiān)聽來自網(wǎng)絡(luò)的請求,根據(jù)請求完成相應(yīng)的數(shù)據(jù)處理,并返回處理結(jié)果給客 戶端。也就是說,服務(wù)模塊221用于向客戶端提供網(wǎng)絡(luò)服務(wù)。
[0026] 網(wǎng)絡(luò)模塊203用于接收以及發(fā)送網(wǎng)絡(luò)信號。上述網(wǎng)絡(luò)信號可包括無線信號或者有 線信號。在一個實例中,上述網(wǎng)絡(luò)信號為有線網(wǎng)絡(luò)信號。此時,網(wǎng)絡(luò)模塊203可包括處理器、 隨機存儲器、轉(zhuǎn)換器、晶體振蕩器等元件。
[0027] 于本發(fā)明實施例中,客戶端可安裝于用戶終端100。本發(fā)明實施例中,客戶端可以 是安裝于用戶終端100的各種應(yīng)用,例如:用戶終端100中的即時通信應(yīng)用(例如QQ、微信 等)、瀏覽器、或者游戲應(yīng)用等,用戶在用戶終端100中輸入用戶帳號及密碼可以登錄對應(yīng) 的應(yīng)用并且使用服務(wù)器200提供的各種業(yè)務(wù)。
[0028] 為更進(jìn)一步闡述本發(fā)明為實現(xiàn)預(yù)定發(fā)明目的所采取的技術(shù)手段及功效,以下結(jié)合 附圖及較佳實施例,對依據(jù)本發(fā)明的【具體實施方式】、結(jié)構(gòu)、特征及其功效,詳細(xì)說明如后。
[0029] 第一實施例
[0030] 圖3為本發(fā)明第一實施例提供的過載保護方法的流程圖。結(jié)合圖1,本實施例描述 的是服務(wù)器的處理流程,本實施例的過載保護方法包括以下步驟:
[0031] 步驟S11,獲取預(yù)定采樣周期內(nèi)的CPU資源消耗數(shù)據(jù)。
[0032] CPU是Central Processing Unit,中央處理器的英文簡稱,也就是通常所說的處 理器,是一塊超大規(guī)模的集成電路。CPU根據(jù)從存儲器提取到的指令來決定其執(zhí)行行為。本 發(fā)明實施例中,CPU資源消耗數(shù)據(jù)指的是CPU所消耗的總的資源,例如,在Linux操作系統(tǒng) 中,CPU資源消耗數(shù)據(jù)指的是CPU處于用戶態(tài)執(zhí)行的時間、系統(tǒng)內(nèi)核執(zhí)行的時間以及空閑系 統(tǒng)進(jìn)程執(zhí)行的時間的總和