亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于滑動窗口的服務(wù)器過載保護方法及裝置的制作方法

文檔序號:6440897閱讀:580來源:國知局
專利名稱:一種基于滑動窗口的服務(wù)器過載保護方法及裝置的制作方法
技術(shù)領(lǐng)域
本 發(fā)明涉及多業(yè)務(wù)服務(wù)器的管理技術(shù),尤其涉及一種基于滑動窗口的服務(wù)器過載保護方法及裝置。
背景技術(shù)
目前,在服務(wù)器集群的負載均衡方面有很多技術(shù)研究,但是,在實際應(yīng)用中,服務(wù)器總會在極端情況下達到負載上限。過載保護就是用于保證服務(wù)器在達到負載上限時仍然能夠繼續(xù)工作,維持服務(wù)器的吞吐量穩(wěn)定,不將前端突發(fā)事件影響傳遞到服務(wù)器。現(xiàn)有的服務(wù)器過載保護技術(shù)中,提出一種采用多個工作負載管理器來分別處理不同優(yōu)先級別請求方法:當(dāng)服務(wù)器負載達到一定上限時,拒絕低優(yōu)先級的服務(wù)請求,只處理高優(yōu)先級的請求。在實際的互聯(lián)網(wǎng)應(yīng)用中,除了系統(tǒng)運營維護所發(fā)出的控制請求,每個用戶都是權(quán)利對等的,他們的請求都應(yīng)該具有相同的優(yōu)先級別。因此,上述方法并不能清晰正確的劃分請求優(yōu)先級,并不能起到過載保護的效果,反而會導(dǎo)致服務(wù)器吞吐量抖動。還有一種服務(wù)器過載保護方法,該方法是從優(yōu)化網(wǎng)卡驅(qū)動著手,是根據(jù)當(dāng)前機器的CPU使用率、內(nèi)存使用率等參數(shù)來衡量服務(wù)器的負載情況;如果服務(wù)器超過負載限制,則網(wǎng)卡驅(qū)動拒絕所有建立新TCP連接的請求,來緩解服務(wù)器壓力。這種方法雖然能夠在一定程度上緩解服務(wù)器負載,但是對于突發(fā)的短暫的高訪問量情況,將會引起服務(wù)器的吞吐量抖動。同時,以機器為控制粒度,而不是服務(wù),這將使得同一臺機器上部署的不同服務(wù)會因為某一個服務(wù)異常而都不能正常工作。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種基于滑動窗口的服務(wù)器過載保護方法及裝置,能夠基于滑動窗口的過載控制較好的控制業(yè)務(wù)突發(fā)訪問量對服務(wù)器的影響。為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:本發(fā)明提供一種基于滑動窗口的服務(wù)器過載保護方法,包括:設(shè)置表示時間段的滑動窗口 ;所述滑動窗口記錄對應(yīng)時間段內(nèi)服務(wù)器接收的請求;服務(wù)器收到新的請求時,根據(jù)滑動窗口記錄的服務(wù)器接收的請求檢測服務(wù)器當(dāng)前的負載狀態(tài),根據(jù)檢測結(jié)果判斷是否對請求進行處理。上述方法中,所述設(shè)置表示時間段的滑動窗口為:將時間虛擬為多個等長的窗口,每個窗口表不一個時間段;所述滑動窗口記錄對應(yīng)時間段內(nèi)服務(wù)器接收的請求為:所述窗口記錄對應(yīng)時間段內(nèi)服務(wù)器所接收到的請求,并維護一個當(dāng)前窗口范圍,根據(jù)所述當(dāng)前窗口范圍進行單次的負載檢測,且每次負載檢測后,所述當(dāng)前窗口范圍根據(jù)上一次負載檢測的時間點的變化進行滑動。上述方法中,所述時間段的長度根據(jù)不同的業(yè)務(wù)需求進行動態(tài)配置,所述當(dāng)前窗口范圍根據(jù)互聯(lián)網(wǎng)請求的延時進行設(shè)置。上述方法中,該方法還包括:根據(jù)不同的業(yè)務(wù)特性為每個窗口配置記錄的請求內(nèi)容。上述方法中,所述根據(jù)不同的業(yè)務(wù)特性為每個窗口配置記錄的請求內(nèi)容為:對于磁盤帶寬消耗型的服務(wù),窗口記錄當(dāng)前時間段內(nèi)磁盤I/O的次數(shù);對于CPU消耗型的服務(wù),窗口記錄當(dāng)前時間段內(nèi)累計消耗的時鐘周期數(shù);對于網(wǎng)絡(luò)帶寬消耗型的服務(wù),窗口記錄當(dāng)前時間段內(nèi)的流量。上述方法中,所述根據(jù)滑動窗口記錄的服務(wù)器接收的請求檢測服務(wù)器當(dāng)前的負載狀態(tài)為:根據(jù)當(dāng)前滑動窗口記錄的服務(wù)器接收的請求,檢測新的請求到來后服務(wù)器當(dāng)前的負載狀態(tài);如果上一次檢測負載狀態(tài)的時間點與本次檢測負載狀態(tài)的時間點位于同一個窗口內(nèi),則將該窗口內(nèi)的計數(shù)加I;如果上一次檢測負載狀態(tài)的時間點與本次檢測負載狀態(tài)的時間點不是位于同一個窗口內(nèi),將該窗口內(nèi)的計數(shù)值清零;對計數(shù)值進行處理后,判斷窗口內(nèi)的計數(shù)值是否超過服務(wù)器處理請求的峰值。上述方法中,所述根據(jù)檢測結(jié)果判斷是否對請求進行處理為:如果窗口內(nèi)的計數(shù)值超過服務(wù)器處理請求的峰值,拒絕新的請求,服務(wù)器不對該請求進行處理;如果窗口內(nèi)的計數(shù)值沒有超過服務(wù)器處理請求的峰值,服務(wù)器對該請求進行處理。本發(fā)明還提供一種基于滑動窗口的服務(wù)器過載保護裝置,包括:設(shè)置單元、滑動窗口單元、接收單元、處理單元;其中,設(shè)置單元,用于表示時間段的滑動窗口 ;滑動窗口單元,用于記錄對應(yīng)時間段內(nèi)服務(wù)器接收的請求;接收單元,用于收到新的請求時,根據(jù)滑動窗口記錄的服務(wù)器接收的請求檢測服務(wù)器當(dāng)前的負載狀態(tài);處理單元,用于根據(jù)檢測結(jié)果判斷是否對請求進行處理。上述裝置中,所述設(shè)置單元還用于,根據(jù)不同的業(yè)務(wù)需求動態(tài)配置時間段的長度,根據(jù)互聯(lián)網(wǎng)請求的延時設(shè)置當(dāng)前窗口范圍。上述裝置中,所述設(shè)置單元還用于,根據(jù)不同的業(yè)務(wù)特性為每個窗口配置記錄的請求內(nèi)容。本發(fā)明提供的基于滑動窗口的服務(wù)器過載保護方法及裝置,設(shè)置表示時間段的滑動窗口,所述滑動窗口記錄對應(yīng)時間段內(nèi)服務(wù)器接收的請求;服務(wù)器收到新的請求時,根據(jù)滑動窗口記錄的服務(wù)器接收的請求檢測服務(wù)器當(dāng)前的負載狀態(tài),根據(jù)檢測結(jié)果判斷是否對請求進行處理,這樣,基于滑動窗口機制的過載控制,能夠較好的控制業(yè)務(wù)突發(fā)訪問量對服務(wù)器的影響;此外,本發(fā)明還能夠維持服務(wù)器的吞吐量在一定的水平,避免造成系統(tǒng)吞吐量的抖動。


圖1是本發(fā)明實現(xiàn)基于滑動窗口的服務(wù)器過載保護方法的流程示意圖;圖2是本發(fā)明滑動窗口的示例圖3是本發(fā)明實現(xiàn)基于滑動窗口的服務(wù)器過載保護裝置的結(jié)構(gòu)示意圖。
具體實施例方式本發(fā)明的基本思想是:設(shè)置表示時間段的滑動窗口,所述滑動窗口記錄對應(yīng)時間段內(nèi)服務(wù)器接收的請求;服務(wù)器收到新的請求時,根據(jù)滑動窗口記錄的服務(wù)器接收的請求檢測服務(wù)器當(dāng)前的負載狀態(tài),根據(jù)檢測結(jié)果判斷是否對請求進行處理。下面通過附圖及具體實施例對本發(fā)明再做進一步的詳細說明。本發(fā)明提供一種基于滑動窗口的服務(wù)器過載保護方法,圖1是本發(fā)明實現(xiàn)基于滑動窗口的服務(wù)器過載保護方法的流程示意圖,如圖1所示,該方法包括以下步驟:步驟101,設(shè)置表示時間段的滑動窗口,該滑動窗口記錄該時間段內(nèi)服務(wù)器接收的請求;具體的,如圖2所示,沿著圖2中箭頭所指的時間軸的方向,將流逝的時間虛擬成多個等長的窗口,每個虛擬的窗口都表示一個時間段;其中,所述時間段的長度可以根據(jù)不同的業(yè)務(wù)需求來動態(tài)配置,例如,可以是lms,也可以是Is等,時間段的長度越小,越能夠精確的描述在某個時間段內(nèi)的真實的服務(wù)器的負載狀態(tài),更具有實時性。窗口記錄對應(yīng)的一個時間段內(nèi)服務(wù)器所接收到的請求,但不是所有的窗口內(nèi)的請求都會被用來作為檢測負載狀態(tài)的依據(jù),因為互聯(lián)網(wǎng)各個時間段的訪問量之間的相關(guān)性較小,一段時間以前的服務(wù)器接收的請求已經(jīng)處理完畢,并不會造成服務(wù)器的負載,因此,只需要根據(jù)最近時間段的訪問次數(shù)來評估服務(wù)器的負載情況,即:只需要維護一個當(dāng)前窗口范圍,該當(dāng)前窗口范圍在整個時間軸內(nèi),能夠為單次的負載檢測提供依據(jù),可以根據(jù)互聯(lián)網(wǎng)請求的延時設(shè)置當(dāng)前窗口范圍。例如,當(dāng)前窗口范圍有100個格子,每個格子的時間長度為I秒,那么,每次負載檢測都將使用過去100秒的所有記錄作為依據(jù),利用該方案,能夠避免因為在單個窗口內(nèi)的抖動造成的整個服務(wù)器吞吐量的抖動;如圖2所示,tl表示上一次負載檢測的時間點,每次負載檢測后,窗口會根據(jù)tl的變化沿時間軸方向滑動,因此,上述窗口為滑動窗口?;谟布?qū)動層的過載保護方案,過載保護粒度為整臺機器,這種情況下可能使得同一臺機器上部署的不同服務(wù)會因為某一個服務(wù)異常而都不能正常工作。比如在特定時亥|J,某一個磁盤帶寬消耗性的服務(wù)消耗了大量的磁盤帶寬達到規(guī)定的上限,網(wǎng)卡此時就不再接受其他的TCP連接,拒絕對外服務(wù),實際上對于CPU消耗性的服務(wù)仍然應(yīng)該被處理。因此缺乏足夠的靈活性。而基于滑動窗口的過載保護方案,除了能夠進行單個窗口范圍和單個窗口對應(yīng)時間段的動態(tài)配置外,還可以根據(jù)不同的業(yè)務(wù)特性為每個窗口配置記錄的請求內(nèi)容,例如,對于磁盤帶寬消耗型的服務(wù),窗口可以記錄當(dāng)前時間段內(nèi)磁盤I/O的次數(shù),對于CPU消耗型的服務(wù),窗口可以記錄當(dāng)前時間段內(nèi)累計消耗的時鐘周期數(shù),對于網(wǎng)絡(luò)帶寬消耗型的務(wù),窗口可以記錄當(dāng)前時間段內(nèi)的流量;通過靈活的為每個窗口配置記錄的請求內(nèi)容,可以根據(jù)不同的服務(wù)實行不同的過載保護的策略,實現(xiàn)以服務(wù)為過載保護粒度。步驟102,服務(wù)器收到新的請求時,根據(jù)當(dāng)前滑動窗口記錄的服務(wù)器接收的請求,檢測服務(wù)器當(dāng)前的負載狀態(tài),根據(jù)檢測結(jié)果判斷是否對請求進行處理;具體的,每個窗口可以記錄對應(yīng)時間段內(nèi)的訪問次數(shù),S卩:檢測負載狀態(tài)的次數(shù),由于每次檢測負載狀態(tài)是在服務(wù)器接收到請求后,因此,服務(wù)器接收的請求的數(shù)量就等于檢測負載的次數(shù);服務(wù)器收到新的請求時,首先根據(jù)當(dāng)前滑動窗口記錄的服務(wù)器接收的請求,檢測新的請求到來后服務(wù)器當(dāng)前的負載狀態(tài),如果上一次檢測負載狀態(tài)的時間點與本次檢測負載狀態(tài)的時間點位于同一個窗口內(nèi),則將該窗口內(nèi)的計數(shù)加I ;對計數(shù)值進行處理后,進一步的,判斷窗口內(nèi)的計數(shù)值是否超過服務(wù)器處理請求的峰值,如果超過,則拒絕這次請求,即:只接收請求,但不處理該請求;如果不超過,則服務(wù)器對該請求進行處理;如果上一次檢測負載狀態(tài)的時間點與本次檢測負載狀態(tài)的時間點不是位于同一個窗口內(nèi),則將該窗口內(nèi)的計數(shù)值清零,因為本次檢測負載狀態(tài)之前服務(wù)器所接收的請求,并不能反映服務(wù)器當(dāng)前的負載狀態(tài);對計數(shù)值進行清零處理后,進一步的,判斷窗口內(nèi)的計數(shù)值是否超過服務(wù)器處理請求的峰值,如果超過,則拒絕這次請求,如果不超過,則服務(wù)器對該請求進行處理。本發(fā)明中,當(dāng)服務(wù)器的負載超過服務(wù)器能夠負擔(dān)的請求時,最多經(jīng)過一個窗口的時間后,服務(wù)器就可以正常的處理一定量的請求,如果一個窗口對應(yīng)時間段比較短,以毫秒為單位,反映在業(yè)務(wù)層的表現(xiàn)就是服務(wù)器拒絕了大量的請求中的某些請求,而且服務(wù)器的吞吐量可以恒定在一個范圍內(nèi),而不是吞吐量突增突減的抖動形式。為實現(xiàn)上述方法,本發(fā)明還提供一種基于滑動窗口的服務(wù)器過載保護裝置,圖3是本發(fā)明實現(xiàn)基于滑動窗口的服務(wù)器過載保護裝置的結(jié)構(gòu)示意圖,如圖3所示,該裝置包括:設(shè)置單元31、滑動窗口單元32、接收單元33、處理單元34 ;其中,設(shè)置單元31,用于表示時間段的滑動窗口 ;滑動窗口單元32,用于記錄對應(yīng)時間段內(nèi)服務(wù)器接收的請求;接收單元33,用于收到新的請求時,根據(jù)滑動窗口記錄的服務(wù)器接收的請求檢測服務(wù)器當(dāng)前的負載狀態(tài);處理單元34,用于根據(jù)檢測結(jié)果判斷是否對請求進行處理。所述設(shè)置單元31還用于,根據(jù)不同的業(yè)務(wù)需求動態(tài)配置時間段的長度,根據(jù)互聯(lián)網(wǎng)請求的延時設(shè)置當(dāng)前窗口范圍。所述設(shè)置單元31還用于,根據(jù)不同的業(yè)務(wù)特性為每個窗口配置記錄的請求內(nèi)容。所述設(shè)置單元31設(shè)置表示時間段的滑動窗口為:將時間虛擬為多個等長的窗口,每個窗口表不一個時間段;所述滑動窗口單元32記錄對應(yīng)時間段內(nèi)服務(wù)器接收的請求為:所述窗口記錄對應(yīng)時間段內(nèi)服務(wù)器所接收到的請求,并維護一個當(dāng)前窗口范圍,根據(jù)所述當(dāng)前窗口范圍進行單次的負載檢測,且每次負載檢測后,所述當(dāng)前窗口范圍根據(jù)上一次負載檢測的時間點的變化進行滑動。所述設(shè)置單元31根據(jù)不同的業(yè)務(wù)特性為每個窗口配置記錄的請求內(nèi)容為:對于磁盤帶寬消耗型的服務(wù),窗口記錄當(dāng)前時間段內(nèi)磁盤I/o的次數(shù);對于CPU消耗型的服務(wù),窗口記錄當(dāng)前時間段內(nèi)累計消耗的時鐘周期數(shù);對于網(wǎng)絡(luò)帶寬消耗型的服務(wù),窗口記錄當(dāng)前時間段內(nèi)的流量。所述接收單元33根據(jù)滑動窗口記錄的服務(wù)器接收的請求檢測服務(wù)器當(dāng)前的負載狀態(tài)為:根據(jù)當(dāng)前滑動窗口記錄的服務(wù)器接收的請求,檢測新的請求到來后服務(wù)器當(dāng)前的負載狀態(tài);如果上一次檢測負載狀態(tài)的時間點與本次檢測負載狀態(tài)的時間點位于同一個窗口內(nèi),則將該窗口內(nèi)的計數(shù)加I;如果上一次檢測負載狀態(tài)的時間點與本次檢測負載狀態(tài)的時間點不是位于同一個窗口內(nèi),將該窗口內(nèi)的計數(shù)值清零;對計數(shù)值進行處理后,進一步的,判斷窗口內(nèi)的計數(shù)值是否超過服務(wù)器處理請求的峰值。相應(yīng)的,所述處理單元34根據(jù)檢測結(jié)果判斷是否對請求進行處理為:如果窗口內(nèi)的計數(shù)值超過服務(wù)器處理請求的峰值,拒絕新的請求,不對該請求進行處理;如果窗口內(nèi)的計數(shù)值沒有超過服務(wù)器處理請求的峰值,對該請求進行處理。本發(fā)明的技術(shù)方案能夠應(yīng)用于申請人自研制的海量分布式存儲系統(tǒng)TFS,該系統(tǒng)中承載有眾多的業(yè)務(wù)數(shù)據(jù),TFS服務(wù)器的穩(wěn)定對承載的業(yè)務(wù)的運行至關(guān)重要,利用上述技術(shù)方案能夠幫助TFS服務(wù)器避免前端業(yè)務(wù)異常訪問情況對服務(wù)器的影響,從而提高服務(wù)器的穩(wěn)定性。以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種基于滑動窗口的服務(wù)器過載保護方法,其特征在于, 設(shè)置表示時間段的滑動窗口; 所述滑動窗口記錄對應(yīng)時間段內(nèi)服務(wù)器接收的請求; 服務(wù)器收到新的請求時,根據(jù)滑動窗口記錄的服務(wù)器接收的請求檢測服務(wù)器當(dāng)前的負載狀態(tài),根據(jù)檢測結(jié)果判斷是否對請求進行處理。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述設(shè)置表示時間段的滑動窗口為:將時間虛擬為多個等長的窗口,每個窗口表示一個時間段; 所述滑動窗口記錄對應(yīng)時間段內(nèi)服務(wù)器接收的請求為:所述窗口記錄對應(yīng)時間段內(nèi)服務(wù)器所接收到的請求,并維護一個當(dāng)前窗口范圍,根據(jù)所述當(dāng)前窗口范圍進行單次的負載檢測,且每次負載檢測后,所述當(dāng)前窗口范圍根據(jù)上一次負載檢測的時間點的變化進行滑動。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述時間段的長度根據(jù)不同的業(yè)務(wù)需求進行動態(tài)配置,所述當(dāng)前窗口范圍根據(jù)互聯(lián)網(wǎng)請求的延時進行設(shè)置。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,該方法還包括:根據(jù)不同的業(yè)務(wù)特性為每個窗口配置記錄的請求內(nèi)容。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)不同的業(yè)務(wù)特性為每個窗口配置記錄的請求內(nèi)容為: 對于磁盤帶寬消耗型的服務(wù),窗口記錄當(dāng)前時間段內(nèi)磁盤I/O的次數(shù); 對于CPU消耗型的服務(wù),窗口記錄當(dāng)前時間段內(nèi)累計消耗的時鐘周期數(shù); 對于網(wǎng)絡(luò)帶寬消耗型的服務(wù),窗口記錄當(dāng)前時間段內(nèi)的流量。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)滑動窗口記錄的服務(wù)器接收的請求檢測服務(wù)器當(dāng)前的負載狀態(tài)為: 根據(jù)當(dāng)前滑動窗口記錄的服務(wù)器接收的請求,檢測新的請求到來后服務(wù)器當(dāng)前的負載狀態(tài);如果上一次檢測負載狀態(tài)的時間點與本次檢測負載狀態(tài)的時間點位于同一個窗口內(nèi),則將該窗口內(nèi)的計數(shù)加I ;如果上一次檢測負載狀態(tài)的時間點與本次檢測負載狀態(tài)的時間點不是位于同一個窗口內(nèi),將該窗口內(nèi)的計數(shù)值清零;對計數(shù)值進行處理后,判斷窗口內(nèi)的計數(shù)值是否超過服務(wù)器處理請求的峰值。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述根據(jù)檢測結(jié)果判斷是否對請求進行處理為: 如果窗口內(nèi)的計數(shù)值超過服務(wù)器處理請求的峰值,拒絕新的請求,服務(wù)器不對該請求進行處理;如果窗口內(nèi)的計數(shù)值沒有超過服務(wù)器處理請求的峰值,服務(wù)器對該請求進行處理。
8.一種基于滑動窗口的服務(wù)器過載保護裝置,其特征在于,該裝置包括:設(shè)置單元、滑動窗口單元、接收單元、處理單元;其中, 設(shè)置單元,用于表示時間段的滑動窗口 ; 滑動窗口單元,用于記錄對應(yīng)時間段內(nèi)服務(wù)器接收的請求; 接收單元,用于收到新的請求時,根據(jù)滑動窗口記錄的服務(wù)器接收的請求檢測服務(wù)器當(dāng)前的負載狀態(tài); 處理單元,用于根據(jù)檢測結(jié)果判斷是否對請求進行處理。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述設(shè)置單元還用于,根據(jù)不同的業(yè)務(wù)需求動態(tài)配置時間段的長度,根據(jù)互聯(lián)網(wǎng)請求的延時設(shè)置當(dāng)前窗口范圍。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述設(shè)置單元還用于,根據(jù)不同的業(yè)務(wù)特性為每個窗口配置記錄的請求內(nèi)容。`
全文摘要
本發(fā)明公開一種基于滑動窗口的服務(wù)器過載保護方法,包括設(shè)置表示時間段的滑動窗口,所述滑動窗口記錄對應(yīng)時間段內(nèi)服務(wù)器接收的請求;服務(wù)器收到新的請求時,根據(jù)滑動窗口記錄的服務(wù)器接收的請求檢測服務(wù)器當(dāng)前的負載狀態(tài),根據(jù)檢測結(jié)果判斷是否對請求進行處理;本發(fā)明還提供一種基于滑動窗口的服務(wù)器過載保護裝置。根據(jù)本發(fā)明的技術(shù)方案,能夠基于滑動窗口的過載控制較好的控制業(yè)務(wù)突發(fā)訪問量對服務(wù)器的影響。
文檔編號G06F21/71GK103164663SQ20111041222
公開日2013年6月19日 申請日期2011年12月12日 優(yōu)先權(quán)日2011年12月12日
發(fā)明者姚明敏, 婁繼冰 申請人:深圳市騰訊計算機系統(tǒng)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1