本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種服務(wù)器的負(fù)載調(diào)整方法及系統(tǒng)。
背景技術(shù):
隨著計(jì)算機(jī)互聯(lián)網(wǎng)技術(shù)的發(fā)展,特別是隨著全球化進(jìn)程的推進(jìn),互聯(lián)網(wǎng)的覆蓋范圍越來越大,覆蓋深度已經(jīng)深入人們的衣食住行。隨著服務(wù)器服務(wù)的客戶端基數(shù)增大,服務(wù)器的負(fù)載越來越高。尤其是當(dāng)某一時(shí)間段大量用戶同時(shí)訪問同一網(wǎng)站時(shí)(例如,春運(yùn)時(shí)購買火車票,或者雙十一商城大促等情況),若不能根據(jù)負(fù)載情況對(duì)該網(wǎng)站的服務(wù)器進(jìn)行優(yōu)化處理,則該網(wǎng)站的服務(wù)器的運(yùn)行會(huì)越來越慢甚至導(dǎo)致宕機(jī),對(duì)訪問該網(wǎng)站的用戶來說體驗(yàn)極為不佳?,F(xiàn)有技術(shù)中,在大量用戶請(qǐng)求訪問服務(wù)器時(shí),通常是由運(yùn)維工程師實(shí)時(shí)監(jiān)控服務(wù)器的運(yùn)行情況。當(dāng)發(fā)現(xiàn)服務(wù)器壓力過大時(shí),運(yùn)維工程師則會(huì)通知各方以進(jìn)行排查,確定問題來源,并以此來決策是否對(duì)服務(wù)器進(jìn)行調(diào)整及如何調(diào)整。
在實(shí)現(xiàn)本申請(qǐng)的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:現(xiàn)有技術(shù)缺乏在大量用戶同時(shí)訪問網(wǎng)站時(shí)對(duì)服務(wù)器的統(tǒng)一處理方案,其實(shí)現(xiàn)服務(wù)器降級(jí)的程序由工程師自己編寫,這些程序有的直接固化到代碼中,有的則在配置文件中控制。由于對(duì)服務(wù)器的調(diào)整過程是人為控制且參與的,通常不能被快速響應(yīng),可能會(huì)導(dǎo)致系統(tǒng)較長(zhǎng)一段時(shí)間內(nèi)不能使用,且人為參與容易帶來各種問題,在網(wǎng)站活動(dòng)中例如商城大促當(dāng)天非常致命。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例提供一種服務(wù)器的負(fù)載調(diào)整方法及系統(tǒng),用以解決上述闡述的現(xiàn)有技術(shù)中的至少一個(gè)問題。
本申請(qǐng)實(shí)施例的一個(gè)方面提供了一種服務(wù)器的負(fù)載調(diào)整方法,包括:
監(jiān)測(cè)服務(wù)器的負(fù)載參數(shù),確定所述服務(wù)器的負(fù)載等級(jí);
參照預(yù)定的負(fù)載等級(jí)/服務(wù)器調(diào)整策略模型,確定與所述服務(wù)器的負(fù)載等級(jí)對(duì)應(yīng)的服務(wù)器調(diào)整策略;
將所述服務(wù)器調(diào)整策略發(fā)送至所述服務(wù)器。
本申請(qǐng)實(shí)施例的另一方面提供了一種服務(wù)器的負(fù)載調(diào)整系統(tǒng),所述系統(tǒng)包括:
負(fù)載等級(jí)確定單元,用于監(jiān)測(cè)服務(wù)器的負(fù)載參數(shù),確定所述服務(wù)器的負(fù)載等級(jí);
調(diào)整策略確定單元,用于參照預(yù)定的負(fù)載等級(jí)/服務(wù)器調(diào)整策略模型,確定與所述服務(wù)器的負(fù)載等級(jí)對(duì)應(yīng)的服務(wù)器調(diào)整策略;
調(diào)整策略發(fā)送單元,用于將所確定的服務(wù)器調(diào)整策略發(fā)送至所述服務(wù)器。
本申請(qǐng)實(shí)施例提供的服務(wù)器的負(fù)載調(diào)整方法及系統(tǒng),通過監(jiān)測(cè)服務(wù)器的負(fù)載參數(shù)來確定服務(wù)器的負(fù)載等級(jí),并根據(jù)預(yù)定的負(fù)載等級(jí)/服務(wù)器調(diào)整策略模型確定與該負(fù)載等級(jí)對(duì)應(yīng)的服務(wù)器調(diào)整策略后,將該服務(wù)器調(diào)整策略發(fā)送至服務(wù)器使服務(wù)器根據(jù)該服務(wù)器調(diào)整策略進(jìn)行相應(yīng)的處理即可滿足服務(wù)器在不同負(fù)載情況下的自動(dòng)調(diào)整。與現(xiàn)有技術(shù)相比,本申請(qǐng)實(shí)施例所示方法及系統(tǒng)能夠根據(jù)監(jiān)測(cè)到的負(fù)載參數(shù)判斷服務(wù)器的負(fù)載等級(jí),并根據(jù)預(yù)設(shè)的負(fù)載等級(jí)/服務(wù)器調(diào)整策略模型對(duì)服務(wù)器在不同負(fù)載等級(jí)下的運(yùn)行情況進(jìn)行自動(dòng)調(diào)整,響應(yīng)速度快,處理時(shí)間短,增加了系統(tǒng)性能。且整個(gè)調(diào)整過程中均為機(jī)器自動(dòng)處理,無需人為操作,大大減少了人為因素帶來的各種誤差。
附圖說明
為了更清楚地說明本申請(qǐng)實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本申請(qǐng)的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本申請(qǐng)一實(shí)施例的服務(wù)器的負(fù)載調(diào)整方法的流程圖;
圖2是本申請(qǐng)一實(shí)施例的服務(wù)器的負(fù)載調(diào)整系統(tǒng)的結(jié)構(gòu)示意圖;
圖3是本申請(qǐng)另一實(shí)施例的服務(wù)器的負(fù)載調(diào)整設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本申請(qǐng)實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施方式及實(shí)施方式中的特征可以相互組合。
本申請(qǐng)可用于眾多通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或配置中。例如:個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。
本申請(qǐng)可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本申請(qǐng),在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”,不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
圖1是本申請(qǐng)一實(shí)施例的服務(wù)器的負(fù)載調(diào)整方法的流程圖。如圖1所示,該方法包括:
S11:監(jiān)測(cè)服務(wù)器的負(fù)載參數(shù),確定所述服務(wù)器的負(fù)載等級(jí);
S12:參照預(yù)定的負(fù)載等級(jí)/服務(wù)器調(diào)整策略模型,確定與所述服務(wù)器的負(fù)載等級(jí)對(duì)應(yīng)的服務(wù)器調(diào)整策略;
S13:將所述服務(wù)器調(diào)整策略發(fā)送至所述服務(wù)器。
在本實(shí)施例中,對(duì)服務(wù)器的負(fù)載參數(shù)的監(jiān)測(cè)可以通過shell腳本采集服務(wù)器的負(fù)載數(shù)據(jù),并寫入到txt文件中。通過作業(yè),定時(shí)將這些數(shù)據(jù)寫到MYSQL數(shù)據(jù)庫中。同時(shí)分析Nginx記錄的日志,將應(yīng)用服務(wù)的性能數(shù)據(jù)例如每次請(qǐng)求服務(wù)的響應(yīng)時(shí)間、異常錯(cuò)誤數(shù)等數(shù)據(jù)插入到數(shù)據(jù)庫中。服務(wù)器調(diào)整策略確定后,可以生成相應(yīng)的通知或指令,并發(fā)送至服務(wù)器以使服務(wù)器根據(jù)該通知或指令進(jìn)行對(duì)應(yīng)于服務(wù)器調(diào)整策略的相應(yīng)處理。
本申請(qǐng)實(shí)施例提供的服務(wù)器的負(fù)載調(diào)整方法,通過監(jiān)測(cè)服務(wù)器的負(fù)載參數(shù)來確定服務(wù)器的負(fù)載等級(jí),并根據(jù)預(yù)定的負(fù)載等級(jí)/服務(wù)器調(diào)整策略模型確定與該負(fù)載等級(jí)對(duì)應(yīng)的服務(wù)器調(diào)整策略后,將該服務(wù)器調(diào)整策略發(fā)送至服務(wù)器使服務(wù)器根據(jù)該服務(wù)器調(diào)整策略進(jìn)行相應(yīng)的處理即可滿足服務(wù)器在不同負(fù)載情況下的自動(dòng)調(diào)整。與現(xiàn)有技術(shù)相比,本申請(qǐng)實(shí)施例所示方法能夠根據(jù)監(jiān)測(cè)到的負(fù)載參數(shù)判斷服務(wù)器的負(fù)載等級(jí),并根據(jù)預(yù)設(shè)的負(fù)載等級(jí)/服務(wù)器調(diào)整策略模型對(duì)服務(wù)器在不同負(fù)載等級(jí)下的運(yùn)行情況進(jìn)行自動(dòng)調(diào)整,響應(yīng)速度快,處理時(shí)間短,增加了系統(tǒng)性能。且整個(gè)調(diào)整過程中均為機(jī)器自動(dòng)處理,無需人為操作,大大減少了人為因素帶來的各種誤差。
作為圖1所示實(shí)施例的進(jìn)一步優(yōu)化,圖1所示實(shí)施例中,負(fù)載等級(jí)/服務(wù)器調(diào)整策略模型包括多個(gè)負(fù)載等級(jí)以及與所述多個(gè)負(fù)載等級(jí)對(duì)應(yīng)的多個(gè)服務(wù)器調(diào)整策略,其中,所述負(fù)載等級(jí)越高,所述服務(wù)器調(diào)整策略中選擇的一個(gè)或多個(gè)調(diào)整手段的強(qiáng)度值越大。
本實(shí)施例的負(fù)載等級(jí)/服務(wù)器調(diào)整策略模型中,每個(gè)負(fù)載等級(jí)對(duì)應(yīng)的服務(wù)器調(diào)整策略包括一個(gè)或多個(gè)調(diào)整手段。負(fù)載等級(jí)越高,則表明服務(wù)器壓力越大,系統(tǒng)運(yùn)行受到的影響越嚴(yán)重,因此對(duì)應(yīng)的調(diào)整手段的強(qiáng)度越大。通過為每個(gè)調(diào)整手段設(shè)置相應(yīng)的強(qiáng)度值,可以為不同的負(fù)載等級(jí)分配具有不同強(qiáng)度值總和的調(diào)整手段以調(diào)整服務(wù)器的負(fù)載。
作為上述實(shí)施例的進(jìn)一步說明,服務(wù)器調(diào)整策略中的調(diào)整手段至少包括增加服務(wù)器、限流、對(duì)服務(wù)器中的至少一種應(yīng)用服務(wù)降級(jí)中的至少一種,其中增加服務(wù)器、限流、對(duì)服務(wù)器中的至少一種應(yīng)用服務(wù)降級(jí)具有各自的調(diào)整強(qiáng)度值。
本實(shí)施例中,限流指:當(dāng)前流量如果超過預(yù)設(shè)的值或者系統(tǒng)承受能力,則直接拒絕掉一部分請(qǐng)求,以實(shí)現(xiàn)對(duì)系統(tǒng)的保護(hù)。根據(jù)基于的數(shù)據(jù)不同,限流可分為兩種:1、基于流量閾值的限流:流量閾值是每個(gè)主機(jī)的流量上限,流量超過該閾值主機(jī)將進(jìn)入不穩(wěn)定狀態(tài)。因此可以提前對(duì)閾值進(jìn)行設(shè)定,如果主機(jī)當(dāng)前流量超過閾值,則拒絕掉一部分流量,使得實(shí)際被處理流量始終低于閾值。2、基于主機(jī)狀態(tài)的限流:每個(gè)接受每個(gè)請(qǐng)求之前先判斷當(dāng)前主機(jī)狀態(tài),如果主機(jī)狀況不佳,則拒絕當(dāng)前請(qǐng)求。
本實(shí)施例中限流的方式可以有:對(duì)于大多數(shù)請(qǐng)求按照IP請(qǐng)求數(shù)限流,對(duì)于登陸用戶按照用戶限流;對(duì)于讀取緩存的請(qǐng)求不進(jìn)行限流,對(duì)進(jìn)入到后端系統(tǒng)的請(qǐng)求進(jìn)行限流。還可以限制用戶訪問頻率,例如使用ngx_lua中的ngx.sleep對(duì)請(qǐng)求進(jìn)行休眠處理,使得接口刷新的速度降下來;或者種植cookie token,防止程序自動(dòng)提交表單,使其必須按照流程訪問。還可以對(duì)爬蟲/刷數(shù)據(jù)的請(qǐng)求返回假數(shù)據(jù)來減少影響。當(dāng)服務(wù)器當(dāng)前的負(fù)載等級(jí)對(duì)應(yīng)的服務(wù)器調(diào)整策略中包括限流時(shí),可以在因?yàn)橄蘖鞫祷氐臄?shù)據(jù)中帶上例如“當(dāng)前請(qǐng)求因?yàn)槌隽髁慷唤乖L問”等相關(guān)信息。
增加服務(wù)器是指在流量超過系統(tǒng)服務(wù)能力時(shí),觸發(fā)集群擴(kuò)容,部署多個(gè)服務(wù)器并上線運(yùn)行。對(duì)服務(wù)器中的至少一種應(yīng)用服務(wù)降級(jí)是指在服務(wù)器負(fù)載過高時(shí)關(guān)閉不重要的接口(直接拒絕處理請(qǐng)求),而保留重要的接口。比如應(yīng)用服務(wù)有10個(gè)接口,服務(wù)降級(jí)時(shí)關(guān)閉了其中五個(gè),保留五個(gè),這時(shí)服務(wù)器的服務(wù)處理能力將增強(qiáng)到二倍左右。
本實(shí)施例中,增加服務(wù)器、限流、對(duì)服務(wù)器中的至少一種應(yīng)用服務(wù)降級(jí)等三種調(diào)整手段的強(qiáng)度值不同,增加服務(wù)器的強(qiáng)度值例如可以是1,限流的強(qiáng)度值例如可以是3,對(duì)服務(wù)器中的至少一種應(yīng)用服務(wù)降級(jí)的強(qiáng)度值例如可以是5。則服務(wù)器調(diào)整策略可以有7個(gè),如下表所示。
表1服務(wù)器調(diào)整策略
應(yīng)當(dāng)理解的是,本申請(qǐng)實(shí)施例所述方法中,當(dāng)服務(wù)器負(fù)載等級(jí)高時(shí),可以通過服務(wù)器調(diào)整策略降低服務(wù)器的負(fù)載,其中該服務(wù)器調(diào)整策略中的調(diào)整手段的強(qiáng)度值較高;從而導(dǎo)致服務(wù)器負(fù)載等級(jí)降低后,此時(shí)采用的服務(wù)器調(diào)整策略其調(diào)整手段的強(qiáng)度值較低。
作為上述實(shí)施例的進(jìn)一步說明,上述實(shí)施例中對(duì)服務(wù)器中的至少一種應(yīng)用服務(wù)降級(jí)包括:減少應(yīng)用服務(wù)接口中的至少一個(gè)擴(kuò)展業(yè)務(wù)的業(yè)務(wù)邏輯。
本實(shí)施例中,可以對(duì)服務(wù)器中的應(yīng)用服務(wù)的業(yè)務(wù)進(jìn)行優(yōu)先級(jí)劃分。優(yōu)先級(jí)高的業(yè)務(wù),例如核心業(yè)務(wù)(12306系統(tǒng)的訂票功能,商城的買單、付款功能),其業(yè)務(wù)邏輯無需減少;而優(yōu)先級(jí)低的業(yè)務(wù),例如擴(kuò)展業(yè)務(wù)(機(jī)票、火車票的選座功能,商城的商品推薦功能),在服務(wù)器負(fù)載等級(jí)較高時(shí),其業(yè)務(wù)邏輯可以暫時(shí)去掉,以優(yōu)先為優(yōu)先級(jí)高的業(yè)務(wù)進(jìn)行服務(wù)。當(dāng)然,當(dāng)服務(wù)器負(fù)載過高例如負(fù)載等級(jí)最高時(shí),即使減少擴(kuò)展業(yè)務(wù)的業(yè)務(wù)邏輯也不能使得服務(wù)器負(fù)載降低,此時(shí)則應(yīng)當(dāng)減少所有業(yè)務(wù)的業(yè)務(wù)邏輯以防止服務(wù)器宕機(jī)。
根據(jù)上述實(shí)施例,本申請(qǐng)實(shí)施例中的負(fù)載等級(jí)/服務(wù)器調(diào)整策略模型的一具體實(shí)施例如表2所示。
表2負(fù)載等級(jí)/服務(wù)器調(diào)整策略模型
作為本申請(qǐng)實(shí)施例的進(jìn)一步說明,本申請(qǐng)實(shí)施例中負(fù)載參數(shù)根據(jù)CPU占用、內(nèi)存占用、磁盤輸入輸出次數(shù)、帶寬占用、并發(fā)請(qǐng)求數(shù)、服務(wù)響應(yīng)時(shí)間和服務(wù)錯(cuò)誤數(shù)確定。
本實(shí)施例中,服務(wù)器的負(fù)載參數(shù)可以根據(jù)服務(wù)器的負(fù)載數(shù)據(jù)(CPU占用、內(nèi)存占用、磁盤輸入輸出次數(shù))、服務(wù)器的網(wǎng)絡(luò)數(shù)據(jù)(帶寬占用、并發(fā)請(qǐng)求數(shù))和服務(wù)器的應(yīng)用服務(wù)性能數(shù)據(jù)(服務(wù)響應(yīng)時(shí)間、服務(wù)錯(cuò)誤數(shù))來確定。負(fù)載參數(shù)可以是上述數(shù)據(jù)中的一種或多種,也可以由上述數(shù)據(jù)中的多種來確定。當(dāng)負(fù)載參數(shù)由上述數(shù)據(jù)中的多種來確定時(shí),其具體值可以通過以下方式確定:
每種數(shù)據(jù)均具有相應(yīng)的權(quán)重,例如CPU占用的權(quán)重為10,內(nèi)存占用的權(quán)重為9,帶寬占用的權(quán)重為7,服務(wù)響應(yīng)時(shí)間的權(quán)重為5等。每種數(shù)據(jù)還具有多個(gè)區(qū)間及區(qū)間計(jì)量值,例如,CPU占用分為三個(gè)區(qū)間,第一區(qū)間為0-30%,其計(jì)量值為5;第二區(qū)間為30%-60%,其計(jì)量值為15;第三區(qū)間為60-100%,其計(jì)量值為30。又或者,服務(wù)響應(yīng)時(shí)間分為四個(gè)區(qū)間,第一區(qū)間為0-0.1s,其計(jì)量值為1;第二區(qū)間為0.1s-1s,其計(jì)量值為5;第三區(qū)間為1s-3s,其計(jì)量值為13;第四區(qū)間為3s以上,其計(jì)量值為50。將每種數(shù)據(jù)的計(jì)量值與權(quán)重相乘,得到數(shù)值總和即為服務(wù)器的負(fù)載參數(shù)。例如,服務(wù)器當(dāng)前CPU占用為50%,其計(jì)量值為15,CPU占用的權(quán)重為10;服務(wù)器當(dāng)前服務(wù)響應(yīng)平均時(shí)間為0.6s,其計(jì)量值為5,服務(wù)響應(yīng)時(shí)間的權(quán)重為5;由此可得到服務(wù)器的負(fù)載參數(shù)為15×10+5×5=175。
需要說明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作合并,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請(qǐng)并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本申請(qǐng),某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本申請(qǐng)所必須的。
在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
圖2是本申請(qǐng)一實(shí)施例的服務(wù)器的負(fù)載調(diào)整系統(tǒng)的結(jié)構(gòu)示意圖。本申請(qǐng)實(shí)施例中所述的服務(wù)器的負(fù)載調(diào)整方法可以基于本實(shí)施例中的服務(wù)器的負(fù)載調(diào)整系統(tǒng)實(shí)施。如圖2所示,該系統(tǒng)包括負(fù)載等級(jí)確定單元21、調(diào)整策略確定單元22和調(diào)整策略發(fā)送單元23。
負(fù)載等級(jí)確定單元21用于監(jiān)測(cè)服務(wù)器的負(fù)載參數(shù),確定所述服務(wù)器的負(fù)載等級(jí);
調(diào)整策略確定單元22用于參照預(yù)定的負(fù)載等級(jí)/服務(wù)器調(diào)整策略模型,確定與所述服務(wù)器的負(fù)載等級(jí)對(duì)應(yīng)的服務(wù)器調(diào)整策略;
調(diào)整策略發(fā)送單元23用于將所確定的服務(wù)器調(diào)整策略發(fā)送至所述服務(wù)器。
本申請(qǐng)實(shí)施例提供的服務(wù)器的負(fù)載調(diào)整系統(tǒng),通過負(fù)載等級(jí)確定單元21監(jiān)測(cè)服務(wù)器的負(fù)載參數(shù)來確定服務(wù)器的負(fù)載等級(jí),并通過調(diào)整策略確定單元22根據(jù)預(yù)定的負(fù)載等級(jí)/服務(wù)器調(diào)整策略模型確定與該負(fù)載等級(jí)對(duì)應(yīng)的服務(wù)器調(diào)整策略后,通過調(diào)整策略發(fā)送單元23將該服務(wù)器調(diào)整策略發(fā)送至服務(wù)器使服務(wù)器根據(jù)該服務(wù)器調(diào)整策略進(jìn)行相應(yīng)的處理即可滿足服務(wù)器在不同負(fù)載情況下的自動(dòng)調(diào)整。與現(xiàn)有技術(shù)相比,本申請(qǐng)實(shí)施例所示系統(tǒng)能夠根據(jù)監(jiān)測(cè)到的負(fù)載參數(shù)判斷服務(wù)器的負(fù)載等級(jí),并根據(jù)預(yù)設(shè)的負(fù)載等級(jí)/服務(wù)器調(diào)整策略模型對(duì)服務(wù)器在不同負(fù)載等級(jí)下的運(yùn)行情況進(jìn)行自動(dòng)調(diào)整,響應(yīng)速度快,處理時(shí)間短,增加了系統(tǒng)性能。且整個(gè)調(diào)整過程中均為機(jī)器自動(dòng)處理,無需人為操作,大大減少了人為因素帶來的各種誤差。
本申請(qǐng)實(shí)施例中可以通過硬件處理器(hardware processor)來實(shí)現(xiàn)相關(guān)功能模塊。
圖3是本申請(qǐng)一可選實(shí)施例的服務(wù)器的負(fù)載調(diào)整設(shè)備的結(jié)構(gòu)示意圖。本申請(qǐng)具體實(shí)施例并不對(duì)服務(wù)器的負(fù)載調(diào)整設(shè)備的具體實(shí)現(xiàn)做限定。如圖3所示,該設(shè)備可以包括:
處理器(processor)310、通信接口(Communications Interface)320、存儲(chǔ)器(memory)330、以及通信總線340。其中:
處理器310、通信接口320、以及存儲(chǔ)器330通過通信總線340完成相互間的通信。
通信接口320,用于與比如客戶端等的網(wǎng)元通信。
處理器310,用于執(zhí)行程序332,具體可以執(zhí)行上述方法實(shí)施例中的相關(guān)步驟。
具體地,程序332可以包括程序代碼,所述程序代碼包括計(jì)算機(jī)操作指令。
處理器310可能是一個(gè)中央處理器CPU,或者是特定集成電路ASIC(Application Specific Integrated Circuit),或者是被配置成實(shí)施本申請(qǐng)實(shí)施例的一個(gè)或多個(gè)集成電路。
上述實(shí)施中的服務(wù)器中:
存儲(chǔ)器,用于存放計(jì)算機(jī)操作指令;
處理器,用于執(zhí)行所述存儲(chǔ)器存儲(chǔ)的計(jì)算機(jī)操作指令,以執(zhí)行:
監(jiān)測(cè)服務(wù)器的負(fù)載參數(shù),確定所述服務(wù)器的負(fù)載等級(jí);
參照預(yù)定的負(fù)載等級(jí)/服務(wù)器調(diào)整策略模型,確定與所述服務(wù)器的負(fù)載等級(jí)對(duì)應(yīng)的服務(wù)器調(diào)整策略;
將所述服務(wù)器調(diào)整策略發(fā)送至所述服務(wù)器。
作為圖2所示實(shí)施例的進(jìn)一步優(yōu)化,圖2所示實(shí)施例中,負(fù)載等級(jí)/服務(wù)器調(diào)整策略模型包括多個(gè)負(fù)載等級(jí)以及與所述多個(gè)負(fù)載等級(jí)對(duì)應(yīng)的多個(gè)服務(wù)器調(diào)整策略,其中,所述負(fù)載等級(jí)越高,所述服務(wù)器調(diào)整策略中選擇的一個(gè)或多個(gè)調(diào)整手段的強(qiáng)度值越大。
本實(shí)施例的負(fù)載等級(jí)/服務(wù)器調(diào)整策略模型中,每個(gè)負(fù)載等級(jí)對(duì)應(yīng)的服務(wù)器調(diào)整策略包括一個(gè)或多個(gè)調(diào)整手段。負(fù)載等級(jí)越高,則表明服務(wù)器壓力越大,系統(tǒng)運(yùn)行受到的影響越嚴(yán)重,因此對(duì)應(yīng)的調(diào)整手段的強(qiáng)度越大。通過為每個(gè)調(diào)整手段設(shè)置相應(yīng)的強(qiáng)度值,可以為不同的負(fù)載等級(jí)分配具有不同強(qiáng)度值總和的調(diào)整手段以調(diào)整服務(wù)器的負(fù)載。
作為上述實(shí)施例的進(jìn)一步說明,服務(wù)器調(diào)整策略中的調(diào)整手段至少包括增加服務(wù)器、限流、對(duì)服務(wù)器中的至少一種應(yīng)用服務(wù)降級(jí)中的至少一種,其中增加服務(wù)器、限流、對(duì)服務(wù)器中的至少一種應(yīng)用服務(wù)降級(jí)具有各自的調(diào)整強(qiáng)度值。
本實(shí)施例中,增加服務(wù)器、限流、對(duì)服務(wù)器中的至少一種應(yīng)用服務(wù)降級(jí)等三種調(diào)整手段的強(qiáng)度值不同,增加服務(wù)器的強(qiáng)度值例如可以是1,限流的強(qiáng)度值例如可以是3,對(duì)服務(wù)器中的至少一種應(yīng)用服務(wù)降級(jí)的強(qiáng)度值例如可以是5。則服務(wù)器調(diào)整策略可以有7個(gè),如表1所示。
作為上述實(shí)施例的進(jìn)一步說明,上述實(shí)施例中對(duì)服務(wù)器中的至少一種應(yīng)用服務(wù)降級(jí)包括:減少應(yīng)用服務(wù)接口中的至少一個(gè)擴(kuò)展業(yè)務(wù)的業(yè)務(wù)邏輯。
本實(shí)施例中,可以對(duì)服務(wù)器中的應(yīng)用服務(wù)的業(yè)務(wù)進(jìn)行優(yōu)先級(jí)劃分。優(yōu)先級(jí)高的業(yè)務(wù),例如核心業(yè)務(wù)(12306系統(tǒng)的訂票功能,商城的買單、付款功能),其業(yè)務(wù)邏輯無需減少;而優(yōu)先級(jí)低的業(yè)務(wù),例如擴(kuò)展業(yè)務(wù)(機(jī)票、火車票的選座功能,商城的商品推薦功能),在服務(wù)器負(fù)載等級(jí)較高時(shí),其業(yè)務(wù)邏輯可以暫時(shí)去掉,以優(yōu)先為優(yōu)先級(jí)高的業(yè)務(wù)進(jìn)行服務(wù)。當(dāng)然,當(dāng)服務(wù)器負(fù)載過高例如負(fù)載等級(jí)最高時(shí),即使減少擴(kuò)展業(yè)務(wù)的業(yè)務(wù)邏輯也不能使得服務(wù)器負(fù)載降低,此時(shí)則應(yīng)當(dāng)減少所有業(yè)務(wù)的業(yè)務(wù)邏輯以防止服務(wù)器宕機(jī)。
根據(jù)上述實(shí)施例,本申請(qǐng)實(shí)施例中的負(fù)載等級(jí)/服務(wù)器調(diào)整策略模型的一個(gè)具體例子如表2所示。
作為本申請(qǐng)實(shí)施例的進(jìn)一步說明,本申請(qǐng)實(shí)施例中負(fù)載參數(shù)根據(jù)CPU占用、內(nèi)存占用、磁盤輸入輸出次數(shù)、帶寬占用、并發(fā)請(qǐng)求數(shù)、服務(wù)響應(yīng)時(shí)間和服務(wù)錯(cuò)誤數(shù)確定。
本實(shí)施例中,服務(wù)器的負(fù)載參數(shù)可以根據(jù)服務(wù)器的負(fù)載數(shù)據(jù)(CPU占用、內(nèi)存占用、磁盤輸入輸出次數(shù))、服務(wù)器的網(wǎng)絡(luò)數(shù)據(jù)(帶寬占用、并發(fā)請(qǐng)求數(shù))和服務(wù)器的應(yīng)用服務(wù)性能數(shù)據(jù)(服務(wù)響應(yīng)時(shí)間、服務(wù)錯(cuò)誤數(shù))來確定。負(fù)載參數(shù)可以是上述數(shù)據(jù)中的一種或多種,也可以由上述數(shù)據(jù)中的多種來確定。當(dāng)負(fù)載參數(shù)由上述數(shù)據(jù)中的多種來確定時(shí),其具體值可以通過以下方式確定:
每種數(shù)據(jù)均具有相應(yīng)的權(quán)重,例如CPU占用的權(quán)重為10,內(nèi)存占用的權(quán)重為9,帶寬占用的權(quán)重為7,服務(wù)響應(yīng)時(shí)間的權(quán)重為5等。每種數(shù)據(jù)還具有多個(gè)區(qū)間及區(qū)間計(jì)量值,例如,CPU占用分為三個(gè)區(qū)間,第一區(qū)間為0-30%,其計(jì)量值為5;第二區(qū)間為30%-60%,其計(jì)量值為15;第三區(qū)間為60-100%,其計(jì)量值為30。又或者,服務(wù)響應(yīng)時(shí)間分為四個(gè)區(qū)間,第一區(qū)間為0-0.1s,其計(jì)量值為1;第二區(qū)間為0.1s-1s,其計(jì)量值為5;第三區(qū)間為1s-3s,其計(jì)量值為13;第四區(qū)間為3s以上,其計(jì)量值為50。將每種數(shù)據(jù)的計(jì)量值與權(quán)重相乘,得到數(shù)值總和即為服務(wù)器的負(fù)載參數(shù)。例如,服務(wù)器當(dāng)前CPU占用為50%,其計(jì)量值為15,CPU占用的權(quán)重為10;服務(wù)器當(dāng)前服務(wù)響應(yīng)平均時(shí)間為0.6s,其計(jì)量值為5,服務(wù)響應(yīng)時(shí)間的權(quán)重為5;由此可得到服務(wù)器的負(fù)載參數(shù)為15×10+5×5=175。
以上所描述的方法實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動(dòng)的情況下,即可以理解并實(shí)施。
通過以上的實(shí)施例的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施例可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本申請(qǐng)是參照根據(jù)本申請(qǐng)實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
最后應(yīng)說明的是:以上實(shí)施例僅用以說明本申請(qǐng)的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本申請(qǐng)進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本申請(qǐng)各實(shí)施例技術(shù)方案的精神和范圍。