專利名稱:在基于群集的系統(tǒng)內(nèi)管理性能及資源利用率的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在數(shù)據(jù)處理系統(tǒng)內(nèi)例如基于群集(cluster-based)的系統(tǒng)內(nèi),用于管理性能或資源利用率,或性能與資源利用率兩者的方法、設(shè)備、和計(jì)算機(jī)程序。
背景技術(shù):
基于群集的體系結(jié)構(gòu),是一種主管(hosting)許多互連網(wǎng)應(yīng)用程序,如Web服務(wù)器或Web服務(wù)程序的有用的平臺(tái)。基于群集的系統(tǒng)包括由局域網(wǎng)連接至一組后端節(jié)點(diǎn)的前端(網(wǎng)關(guān))節(jié)點(diǎn)。該前端節(jié)點(diǎn)接收請(qǐng)求,并把請(qǐng)求轉(zhuǎn)發(fā)至實(shí)際處理這些請(qǐng)求的后端節(jié)點(diǎn)?;谌杭南到y(tǒng)有許多優(yōu)點(diǎn),包括增量的可縮放性、增加的可用性及性能、費(fèi)用控制和維護(hù)。因此,群集被用于可縮放的Web服務(wù)器,見M.Aron,D.Sanders,P.Druschel,and W.Zwaenepoel的“Scalable Content-Aware RequestDistribution in Cluster-based Network Servers”,Proceedings of 2000USENIX Annual Technical Conference,2000年6月,及見M.Aron,P.Druschel,and W.Zwaenepoel的“Efficient Support for P-HTTP inCluster-based Web Servers”,Proceedings of 1999 USENIX AnnualTechnical Conference,1999年6月。
在基于群集的網(wǎng)絡(luò)服務(wù)器內(nèi),一種使用基于內(nèi)容的請(qǐng)求分配的專用技術(shù),由V.S.Pai,M.Maron,G.Banga,M.Svendsen,P.Druschel,W.Zwanenepoel,and E.Nahum等人在下述文章中說明“Locality-AwareRequest Distribution in Cluster-based Network Servers”,Proceedings of8th ACM Conference on Architectural Support for Programming Languagesand Operating System,1998年10月。位置識(shí)別的請(qǐng)求分配(locality-awarerequest distribution,LARD)包括,在后端服務(wù)器把數(shù)據(jù)分為若干部分,并按照考慮數(shù)據(jù)存儲(chǔ)地點(diǎn)的方式,使用前端分配進(jìn)入的請(qǐng)求。
基于群集的體系結(jié)構(gòu),還適合用于提供Web服務(wù)程序,見E.Casalicchio and M.Colajanni,“A Client-Aware Dispatching Algorithmfor Web Clusters Providing Multiples Services”,Proceedings of the 10thInternational Eorld Wide Web Conference,2001年5月。把群集用于提供互連網(wǎng)服務(wù)程序的優(yōu)點(diǎn),見A.Fox,S.Gribbe,Y.Chawathe,E.Brewerand P.Gauthier“Cluster-based Scalable Network Services”,Proceedingsof the Sixteenth ACM Symposium on Operating System Principles,1997年10月。
M.Welsh,D.Culler and E.Brewer,在2001年10月的“SEDAAnArchitecture for Well-Conditioned,Scalable Internet Services”,Proceedings of 18th Symposium on Operating System Principles(SOSP’01)中,說明一種用于高并發(fā)的服務(wù)器應(yīng)用程序的構(gòu)架,該構(gòu)架使用基于事件編程模型的線程操作和方面,提供自動(dòng)調(diào)諧來響應(yīng)大的負(fù)載變化。該構(gòu)架被稱為分級(jí)的事件驅(qū)動(dòng)體系結(jié)構(gòu)(SEDA)。各級(jí)被事件隊(duì)列分開,并為響應(yīng)負(fù)載的變化,包括動(dòng)態(tài)地調(diào)整資源分配和調(diào)度的控制器。每一級(jí)線程存儲(chǔ)池的大小,根據(jù)監(jiān)測(cè)的事件隊(duì)列長度調(diào)整。
已經(jīng)嘗試用各種機(jī)制改進(jìn)基于群集的系統(tǒng)的性能-包括高速緩存、負(fù)載均衡、和用戶的越區(qū)切換(如TCP越區(qū)切換)。前端可以分配請(qǐng)求,使后端節(jié)點(diǎn)之間的負(fù)載均衡,并可以根據(jù)用戶、請(qǐng)求內(nèi)容、當(dāng)前資源使用、或調(diào)度算法,來分配負(fù)載。已經(jīng)知道,基于群集的負(fù)載分配,可改進(jìn)可縮放性、可用性、和互連網(wǎng)服務(wù)的故障容限。已經(jīng)在文獻(xiàn)中報(bào)告了各種用于請(qǐng)求轉(zhuǎn)發(fā)的越區(qū)切換機(jī)制。但是,這些機(jī)制通常要求改變操作系統(tǒng),因而不可能是便攜式的。
在“On the Use of Virtual Channels in Networkstations withIrregular Topology”,IEEE Transactions Parallel and DistributedSystems,Vol.11,No.8,2000年8月,813-828頁中,F(xiàn).Silla和J.Duato說明一種流量控制協(xié)議,用于支持實(shí)施自適應(yīng)路由的工作站網(wǎng)絡(luò)中的許多虛擬信道。該流量控制協(xié)議使用信道流水線技術(shù)并查找最小的控制業(yè)務(wù)量。
已公開的美國專利申請(qǐng)第2002/0055980號(hào)、2002/0055982號(hào)、和2002/0055983號(hào)(Goddard)說明一種與分配器有多個(gè)持續(xù)連接的服務(wù)器計(jì)算機(jī)。為了改進(jìn)后端服務(wù)器性能,分配器監(jiān)測(cè)后端服務(wù)器的性能,或者控制并發(fā)地處理的數(shù)據(jù)請(qǐng)求的數(shù)量,或者控制并發(fā)地支持連接的數(shù)量。
雖然為改進(jìn)基于群集的系統(tǒng)的性能,已經(jīng)做了許多工作,但仍有進(jìn)一步改進(jìn)的余地。例如,現(xiàn)有的基于群集的系統(tǒng),并沒有有效地利用前端與后端之間的網(wǎng)絡(luò)帶寬。現(xiàn)有的基于群集的系統(tǒng),沒有充分開發(fā)多連接的優(yōu)點(diǎn)。現(xiàn)有系統(tǒng)一般按靜態(tài)設(shè)計(jì),不適于系統(tǒng)變化的工作負(fù)載。此外,現(xiàn)有系統(tǒng)一般根據(jù)直接的網(wǎng)絡(luò)子系統(tǒng)(如TCP/IP),并不開發(fā)中介網(wǎng)絡(luò)子系統(tǒng)的優(yōu)點(diǎn)(如Java Messaging Service,Java電子信函服務(wù))。
發(fā)明內(nèi)容
本發(fā)明的第一方面,是提供一種方法,用于管理數(shù)據(jù)處理系統(tǒng)數(shù)據(jù)處理單元之間的連接。通過在系統(tǒng)的第一與第二數(shù)據(jù)處理單元之間建立多個(gè)持續(xù)連接,提供并發(fā)性利益。數(shù)據(jù)處理單元之間的最佳連接數(shù),與系統(tǒng)上的負(fù)載有關(guān)(如并發(fā)的客戶請(qǐng)求數(shù)),也與數(shù)據(jù)處理單元之間發(fā)送的請(qǐng)求類型有關(guān)(數(shù)據(jù)密集型/CPU密集型)。本方法包括監(jiān)測(cè)從系統(tǒng)第一數(shù)據(jù)處理單元傳輸至第二數(shù)據(jù)處理單元的請(qǐng)求的通信延遲,并在被監(jiān)測(cè)的通信延遲表明某種預(yù)定性能條件時(shí),作出響應(yīng),修改第一和第二數(shù)據(jù)處理單元之間的持續(xù)連接數(shù)。
本申請(qǐng)所說的“連接”,包括在該連接端點(diǎn)之間通信信道的物理確立。建立“連接”,通常包括交換和存儲(chǔ)連接端點(diǎn)地址的標(biāo)識(shí),以及使用的通信端口號(hào)碼,還為經(jīng)過該連接的通信的使用,保留資源-諸如系統(tǒng)存儲(chǔ)器和緩沖存儲(chǔ)區(qū)。雖然受可用的通信帶寬的限制,但在兩個(gè)計(jì)算機(jī)系統(tǒng)之間,可能有大量規(guī)定給予單個(gè)物理鏈路上使用的連接可供使用。“持續(xù)連接”是一種在多個(gè)請(qǐng)求上持續(xù)存在的連接。
本發(fā)明的第一實(shí)施例,提供一種用于管理計(jì)算機(jī)系統(tǒng)數(shù)據(jù)處理單元之間持續(xù)連接的方法,其中,第一數(shù)據(jù)處理單元與第二數(shù)據(jù)處理單元連接,以便把請(qǐng)求發(fā)送到第二數(shù)據(jù)處理單元處理,本方法包括的步驟有監(jiān)測(cè)從第一數(shù)據(jù)處理單元傳輸至第二數(shù)據(jù)處理單元的請(qǐng)求的通信延遲周期;把被監(jiān)測(cè)的延遲周期與閾值延遲周期比較,確定被監(jiān)測(cè)的延遲周期是否表明某種預(yù)定性能條件;和在確定監(jiān)測(cè)的延遲周期表明該預(yù)定性能條件時(shí),作出響應(yīng),調(diào)整第一和第二數(shù)據(jù)處理單元之間的連接數(shù)。
本方法可以在基于群集的數(shù)據(jù)處理系統(tǒng)內(nèi)使用,用于管理系統(tǒng)前端‘分配器’或‘網(wǎng)關(guān)’節(jié)點(diǎn)與后端處理節(jié)點(diǎn)的每一群集之間的持續(xù)連接。
為了扣除第二數(shù)據(jù)處理單元上的處理時(shí)間,通信延遲可以計(jì)算如下。按照本發(fā)明一個(gè)實(shí)施例,被監(jiān)控的通信延遲是用第一時(shí)間標(biāo)記與第二時(shí)間標(biāo)記之差,減去實(shí)際處理該請(qǐng)求的時(shí)間(該實(shí)際處理時(shí)間是在第二數(shù)據(jù)處理單元上測(cè)量的)計(jì)算的。該第一時(shí)間標(biāo)記是請(qǐng)求從第一數(shù)據(jù)處理單元發(fā)送至第二數(shù)據(jù)處理單元時(shí)產(chǎn)生的,該第二時(shí)間標(biāo)記是當(dāng)對(duì)所述請(qǐng)求的響應(yīng)被第一數(shù)據(jù)處理單元從第二數(shù)據(jù)處理單元接收時(shí)產(chǎn)生的。這樣計(jì)算的等于時(shí)間標(biāo)記之差減去處理時(shí)間的時(shí)間周期,被稱為排隊(duì)延遲。個(gè)別請(qǐng)求的大小及其他特性,對(duì)排隊(duì)延遲的影響,不如對(duì)總的響應(yīng)時(shí)間的影響大。
在一個(gè)具體的實(shí)施例中,本方法對(duì)被監(jiān)測(cè)的延遲周期超過第一閾值延遲周期時(shí),作出響應(yīng),啟動(dòng)附加連接的建立,在第一與第二數(shù)據(jù)處理單元之間建立至少一個(gè)附加連接(以連接數(shù)不超過最大值為限,在該最大值以上,性能對(duì)某些負(fù)載水平惡化)。第一閾值延遲周期,最好作為表示最小延遲周期的值確定,對(duì)該最小延遲周期值,添加一個(gè)或多個(gè)連接能使通信延遲降低一定量,可以證明該添加是合理的。
在一個(gè)實(shí)施例中,還定義第二閾值延遲周期,并且在確定被監(jiān)測(cè)的延遲周期小于該第二閾值延遲周期時(shí),作出響應(yīng),至少刪除第一與第二數(shù)據(jù)處理單元之間的一個(gè)連接(以保留至少一個(gè)連接為條件)。第二閾值延遲周期最好標(biāo)識(shí)為在該閾值以下的延遲周期,刪除一個(gè)或多個(gè)連接,不會(huì)導(dǎo)致延遲周期增加不可接受的量。
本發(fā)明第二實(shí)施例是提供一種數(shù)據(jù)處理系統(tǒng),該系統(tǒng)包括第一數(shù)據(jù)處理單元,用于從客戶請(qǐng)求者接收請(qǐng)求,并把接收的請(qǐng)求傳遞至第二數(shù)據(jù)處理單元,還用于從第二數(shù)據(jù)處理單元接收響應(yīng),并把接收的響應(yīng)轉(zhuǎn)發(fā)至客戶請(qǐng)求者;第二數(shù)據(jù)處理單元,用于處理從第一數(shù)據(jù)處理單元接收的請(qǐng)求,產(chǎn)生響應(yīng),并把響應(yīng)轉(zhuǎn)發(fā)至第一數(shù)據(jù)處理單元;和連接管理器,用于管理第一與第二數(shù)據(jù)處理單元之間的連接數(shù),該連接管理器能對(duì)表明某種預(yù)定性能條件的第一與第二數(shù)據(jù)處理單元之間被監(jiān)測(cè)的通信延遲,作出響應(yīng),修改第一與第二數(shù)據(jù)處理單元之間的持續(xù)連接數(shù)。
本發(fā)明第三實(shí)施例,是提供一種數(shù)據(jù)處理系統(tǒng),該系統(tǒng)包括網(wǎng)絡(luò)子系統(tǒng);網(wǎng)關(guān)節(jié)點(diǎn),用于從客戶請(qǐng)求者接收請(qǐng)求,并把接收的請(qǐng)求傳遞至網(wǎng)絡(luò)子系統(tǒng),以便送至一組后端處理節(jié)點(diǎn)之一,還用于經(jīng)過網(wǎng)絡(luò)子系統(tǒng)從后端處理節(jié)點(diǎn)接收響應(yīng),并把接收的響應(yīng)轉(zhuǎn)發(fā)至客戶請(qǐng)求者;和一組后端處理節(jié)點(diǎn),用于處理經(jīng)過網(wǎng)絡(luò)子系統(tǒng)從網(wǎng)關(guān)節(jié)點(diǎn)接收的請(qǐng)求,產(chǎn)生響應(yīng),還用于把響應(yīng)經(jīng)過網(wǎng)絡(luò)子系統(tǒng)轉(zhuǎn)發(fā)至網(wǎng)關(guān)節(jié)點(diǎn);連接管理器,用于管理網(wǎng)關(guān)節(jié)點(diǎn)與每一個(gè)后端節(jié)點(diǎn)之間的連接數(shù),該連接管理器能對(duì)表明某種預(yù)定性能條件的網(wǎng)關(guān)節(jié)點(diǎn)與后端處理節(jié)點(diǎn)之間被監(jiān)測(cè)的通信延遲,作出響應(yīng),修改網(wǎng)關(guān)節(jié)點(diǎn)與后端處理節(jié)點(diǎn)中至少第一個(gè)之間的持續(xù)連接數(shù)。
在一個(gè)實(shí)施例中,監(jiān)測(cè)通信延遲并對(duì)該組后端節(jié)點(diǎn)求平均,還在每一后端節(jié)點(diǎn)與網(wǎng)關(guān)節(jié)點(diǎn)之間提供相等數(shù)量的連接。在一個(gè)優(yōu)選實(shí)施例中,連接管理器在被監(jiān)測(cè)的通信延遲超過第一延遲閾值時(shí),作出響應(yīng),增加網(wǎng)關(guān)節(jié)點(diǎn)與每一個(gè)后端處理節(jié)點(diǎn)之間的持續(xù)連接數(shù),還在被監(jiān)測(cè)的通信延遲小于第二延遲閾值時(shí),作出響應(yīng),減少網(wǎng)關(guān)節(jié)點(diǎn)與每一個(gè)后端處理節(jié)點(diǎn)之間的持續(xù)連接數(shù)。
再一個(gè)實(shí)施例是提供一種管理網(wǎng)關(guān)節(jié)點(diǎn)與一組后端處理節(jié)點(diǎn)每一個(gè)之間持續(xù)連接的方法,這些后端處理節(jié)點(diǎn)安排在數(shù)據(jù)處理系統(tǒng)中的群集內(nèi),本方法包括的步驟有監(jiān)測(cè)從網(wǎng)關(guān)節(jié)點(diǎn)傳送到后端處理節(jié)點(diǎn)的請(qǐng)求的通信延遲周期;把被監(jiān)測(cè)的通信延遲周期與閾值通信延遲周期比較,確定被監(jiān)測(cè)的通信延遲周期是否表明某種預(yù)定性能條件;和在確定被監(jiān)測(cè)的通信延遲周期表明某種預(yù)定性能條件時(shí),作出響應(yīng),調(diào)整網(wǎng)關(guān)節(jié)點(diǎn)與至少一個(gè)該組后端節(jié)點(diǎn)之間的連接數(shù)。
再一個(gè)實(shí)施例是提供一種計(jì)算機(jī)程序產(chǎn)品,包括記錄在記錄媒體上的程序碼,用于控制執(zhí)行該程序碼的數(shù)據(jù)處理系統(tǒng)的操作,該程序碼包括連接管理器,用于管理系統(tǒng)的第一數(shù)據(jù)處理單元與第二數(shù)據(jù)處理單元之間的連接數(shù),管理步驟如下監(jiān)測(cè)從第一數(shù)據(jù)處理單元傳輸至第二數(shù)據(jù)處理單元的請(qǐng)求的通信延遲周期;把被監(jiān)測(cè)的通信延遲周期與閾值通信延遲周期比較,確定被監(jiān)測(cè)的通信延遲周期是否表明某種預(yù)定性能條件;和在確定被監(jiān)測(cè)的延遲周期表明某種預(yù)定性能條件時(shí),作出響應(yīng),調(diào)整第一和第二數(shù)據(jù)處理單元之間的連接數(shù)。
按照本發(fā)明實(shí)施例的方法、系統(tǒng)、和計(jì)算機(jī)程序,可以用于使用中介的或直接連接的網(wǎng)絡(luò)子系統(tǒng)的系統(tǒng),以便對(duì)系統(tǒng)負(fù)載的改變作出響應(yīng),修改系統(tǒng)節(jié)點(diǎn)之間的連接數(shù)。同樣,按照本發(fā)明實(shí)施例的方法和系統(tǒng),能夠結(jié)合現(xiàn)有方案工作-例如結(jié)合負(fù)載平衡,或結(jié)合自適應(yīng)盒子(container)工作-以進(jìn)一步改進(jìn)系統(tǒng)的性能。
下面,通過舉例方式,參照
本發(fā)明的實(shí)施例,附圖中圖1畫出基于群集系統(tǒng)的體系結(jié)構(gòu)示意圖;圖2A是曲線,表示通過量隨連接數(shù)的變化,說明并發(fā)性對(duì)性能的影響;
圖2B是曲線,表示排隊(duì)延遲隨連接數(shù)的變化,說明并發(fā)性對(duì)性能的影響;圖3畫出連接數(shù)的上限,超出該上限,增加連接數(shù)不能改進(jìn)通過量;圖4按照本發(fā)明的一個(gè)實(shí)施例,畫出計(jì)算排隊(duì)延遲的方法;圖5按照本發(fā)明的一個(gè)實(shí)施例,畫出一種系統(tǒng)體系結(jié)構(gòu);和圖6按照本發(fā)明的一個(gè)實(shí)施例,畫出添加或刪除連接的方法的步驟。
具體實(shí)施例方式
以下說明的某些部分,明顯地或不明顯地用算法和符號(hào)表示對(duì)計(jì)算機(jī)存儲(chǔ)器內(nèi)數(shù)據(jù)的操作。這些算法的描述和表示,是本領(lǐng)域熟練人員在數(shù)據(jù)處理領(lǐng)域,用于最有效地向本領(lǐng)域其他人員傳達(dá)他們工作實(shí)質(zhì)的手段。一種算法可以設(shè)想為能導(dǎo)致需要結(jié)果的、自洽的一系列步驟。這些步驟是要求對(duì)物理量進(jìn)行物理操縱的步驟。這些物理量一般取電信號(hào)或磁信號(hào)的形式,能被存儲(chǔ)、傳送、組合、比較、或其他的操作。常常為了方便,把這些信號(hào)稱為比特、值、單元、符號(hào)、字符、數(shù)字,等等。
但是,上述和類似的術(shù)語應(yīng)能與適當(dāng)?shù)奈锢砹筷P(guān)聯(lián),且僅僅是便于這些物理量的標(biāo)記。除非另外特別聲明,貫穿本說明書討論中使用諸如“運(yùn)算”、“計(jì)算”、“確定”、“比較”、“產(chǎn)生”、“選擇”、“輸出”等等術(shù)語,是指計(jì)算機(jī)系統(tǒng)或類似的電子裝置中的動(dòng)作和處理過程,這種動(dòng)作和處理過程,操縱和變換計(jì)算機(jī)系統(tǒng)內(nèi)寄存器和存儲(chǔ)器中表示為物理(電子)量的數(shù)據(jù),使之成為同樣在計(jì)算機(jī)系統(tǒng)存儲(chǔ)器或寄存器中,或其他該類信息存儲(chǔ)、傳輸、或顯示裝置中表示為物理量的其他數(shù)據(jù)。
本說明書還公開用于實(shí)現(xiàn)本方法的操作的設(shè)備。這一設(shè)備可以專門按需要的目的構(gòu)建,也可以由通用計(jì)算機(jī)組成,或由存儲(chǔ)在計(jì)算機(jī)內(nèi)的計(jì)算機(jī)程序有選擇地激活或重新配置的其他裝置組成。本文提出的算法,并不專門地涉及任何特定計(jì)算機(jī)或其他設(shè)備。各種一般用途的機(jī)器,可以與按照本文教導(dǎo)的程序一起使用。另外,為執(zhí)行本方法要求的步驟,更加專業(yè)化的設(shè)備可能是適當(dāng)?shù)摹?br>
此外,本說明書還公開一種包含計(jì)算機(jī)程序的計(jì)算機(jī)可讀媒體,該程序用于執(zhí)行本方法的操作。本文考慮的計(jì)算機(jī)可讀媒體,包括任何在源與目的地之間傳輸計(jì)算機(jī)程序的傳輸媒體。該傳輸媒體可以包括如磁盤或光盤之類的存儲(chǔ)裝置、存儲(chǔ)芯片、或其他適合與通用計(jì)算機(jī)對(duì)接的存儲(chǔ)裝置。該傳輸媒體還可以包括硬布線的媒體,例如互連網(wǎng)系統(tǒng)中的媒體,或無線的媒體,例如GSM移動(dòng)電話系統(tǒng)中的媒體。本文說明的任何計(jì)算機(jī)程序,不受任何特定編程語言及該語言的實(shí)施方案限制。顯然,各種編程語言及其編碼,都可以用來實(shí)施本文公開的教導(dǎo)內(nèi)容。
當(dāng)引用附圖的任何一個(gè)或多個(gè)有相同參考數(shù)字的步驟或部件時(shí),則所引用的那些步驟或部件,就本說明書而言有相同功能或操作,除非出現(xiàn)相反的注明。
群集概述圖1畫出典型的、基于群集的系統(tǒng)的體系結(jié)構(gòu),本發(fā)明可以在其中實(shí)施。前端節(jié)點(diǎn)10對(duì)系統(tǒng)的數(shù)據(jù)處理節(jié)點(diǎn),起網(wǎng)關(guān)的作用,并通過網(wǎng)絡(luò)子系統(tǒng)30與后端節(jié)點(diǎn)20連接。前端節(jié)點(diǎn)從客戶50接收請(qǐng)求,并負(fù)責(zé)把進(jìn)入的請(qǐng)求以對(duì)客戶透明的方式,分配至后端節(jié)點(diǎn)。后端節(jié)點(diǎn)20完成請(qǐng)求的主要處理,必要時(shí)接入數(shù)據(jù)庫40,并直接地或經(jīng)前端節(jié)點(diǎn)10,向客戶50發(fā)回響應(yīng)。
本發(fā)明不限于特定的數(shù)據(jù)處理硬件,圖1所示的各種體系結(jié)構(gòu)部件,都可以用適當(dāng)?shù)臄?shù)據(jù)處理設(shè)備實(shí)施-包括分離的計(jì)算系統(tǒng)或集成在并行處理系統(tǒng)中的分離的數(shù)據(jù)處理單元(例如,后端處理節(jié)點(diǎn)20可以是單個(gè)系統(tǒng)的分離的處理單元)。但是,本發(fā)明可用于群集的Web服務(wù)器,在該Web服務(wù)器中,Web服務(wù)器軟件運(yùn)行在多個(gè)后端服務(wù)器計(jì)算機(jī)的每一個(gè)上。在這種情況中,每一個(gè)后端計(jì)算機(jī)20與網(wǎng)關(guān)服務(wù)器10協(xié)同運(yùn)作。
前端與后端節(jié)點(diǎn)通過網(wǎng)絡(luò)子系統(tǒng)30彼此連接,這種連接可以是與網(wǎng)絡(luò)子系統(tǒng)的直接連接,也可以是與網(wǎng)絡(luò)子系統(tǒng)通過中介的連接。在與子系統(tǒng)的直接連接中(如在TCP/IP實(shí)施方案中),前端與后端節(jié)點(diǎn)之間的持續(xù)連接是開放的;而在與子系統(tǒng)通過中介的連接中,連接經(jīng)過前端與后端節(jié)點(diǎn)之間的代理。持續(xù)連接是一種在多個(gè)請(qǐng)求上持續(xù)的連接,所以不必對(duì)每一請(qǐng)求建立新的連接。每一個(gè)前端與后端節(jié)點(diǎn)都可用作消息的產(chǎn)生者和用戶。
許多普通功能,如認(rèn)證、接入控制、負(fù)載平衡、請(qǐng)求分配、和資源管理,由前端節(jié)點(diǎn)處理。前端節(jié)點(diǎn)運(yùn)行提供這些功能的多線程服務(wù)器(即能夠處理并發(fā)請(qǐng)求的服務(wù)器),并讓后端節(jié)點(diǎn)專注于核心服務(wù)功能上。通常,前端節(jié)點(diǎn)分配請(qǐng)求時(shí),力求后端節(jié)點(diǎn)間的負(fù)載均衡。
借助基于內(nèi)容的請(qǐng)求分配,前端節(jié)點(diǎn)在判定客戶請(qǐng)求應(yīng)分配給哪一后端節(jié)點(diǎn)時(shí),還要考慮請(qǐng)求的服務(wù)內(nèi)容或類型。每一后端節(jié)點(diǎn)是一多線程服務(wù)器(盒子)并提供核心服務(wù)功能。本文使用普通術(shù)語“盒子”來標(biāo)記后端節(jié)點(diǎn),因?yàn)樗琖eb服務(wù),又是通用的可以在HTTP、TCP/IP、或JMS連接上監(jiān)聽的服務(wù)器。
系統(tǒng)的體系結(jié)構(gòu)下面舉例說明一種系統(tǒng)體系結(jié)構(gòu)。網(wǎng)關(guān)與一后端群集連接,使它們之間的通信,能用推/拉方法,和用簡(jiǎn)單的循環(huán)算法使負(fù)載在后端節(jié)點(diǎn)的群集上均衡。
該系統(tǒng)包括如下部件●有助于“推/拉”通信的代理。
●在HTTP上從客戶接收請(qǐng)求的網(wǎng)關(guān)。該網(wǎng)關(guān)○通過把進(jìn)入的請(qǐng)求公布在指定的請(qǐng)求主題上,把請(qǐng)求推向代理;○通過把代理的響應(yīng)署名在代理的相應(yīng)響應(yīng)主題上,從代理拉出響應(yīng);和○在開放的HTTP連接上,把響應(yīng)發(fā)回客戶。
●后端節(jié)點(diǎn)的群集。每一后端節(jié)點(diǎn)是一服務(wù)器,它○部署/包含Web服務(wù)器;○通過署名在請(qǐng)求主題上,從代理拉出請(qǐng)求,并啟用相關(guān)的web服務(wù);和○通過把響應(yīng)公布在響應(yīng)主題上,把響應(yīng)從web服務(wù)推向代理。
在推/拉系統(tǒng)中,一旦公布者(或用戶)建立了用于公布(或署名)的主題,則公布者(或用戶)保持與代理的持續(xù)連接,并在該連接上推(拉)數(shù)據(jù)。
令N個(gè)后端盒子為C1、C2、…、CN。初始,每一盒子Ci準(zhǔn)確地有一個(gè)請(qǐng)求主題“ReqTopicCi1”和一個(gè)響應(yīng)主題“ResTopicCi1”。因此,在網(wǎng)關(guān)與每一后端盒子之間,有一個(gè)經(jīng)過代理的持續(xù)連接。隨著網(wǎng)關(guān)從客戶接收每一請(qǐng)求,網(wǎng)關(guān)在主題“ReqTopicC11”上公布第一個(gè)請(qǐng)求,在主題“ReqTopicC21”上公布第二個(gè)請(qǐng)求,余類推,直至在主題“ReqRopicCN1”上公布第N個(gè)請(qǐng)求為止。然后,按循環(huán)方式,再在主題“ReqRopicC11”上公布第(N+1)個(gè)請(qǐng)求,如此等等。
當(dāng)負(fù)載增加時(shí),若干請(qǐng)求在同一連接上排成流水線。就是說,若干個(gè)請(qǐng)求經(jīng)過同一連接發(fā)送,不用等待網(wǎng)關(guān)在發(fā)送下一個(gè)請(qǐng)求前完成網(wǎng)關(guān)對(duì)請(qǐng)求的執(zhí)行。類似的流水線技術(shù)也用于響應(yīng)。在重的負(fù)載下,連接的流水線可能“已滿”-就是說,為連接保留的計(jì)算機(jī)存儲(chǔ)器和緩存器已經(jīng)充滿,不能再增加請(qǐng)求(或響應(yīng)),直至現(xiàn)有的請(qǐng)求(或響應(yīng))已經(jīng)處理完畢。這樣導(dǎo)致把請(qǐng)求(或響應(yīng))傳遞到連接流水線上的延遲,從而導(dǎo)致把請(qǐng)求從網(wǎng)關(guān)傳遞到后端節(jié)點(diǎn),及從后端節(jié)點(diǎn)傳遞到網(wǎng)關(guān)的延遲。該延遲被稱為排隊(duì)延遲。
為降低排隊(duì)延遲,可以增加網(wǎng)關(guān)與每一后端盒子之間的持續(xù)連接數(shù)。例如,如果持續(xù)連接數(shù)增加到3,那么使用的請(qǐng)求主題,對(duì)后端節(jié)點(diǎn)C1將是“ReqTopicC11”、“ReqTopicC12”、和“ReqTopicC13”,對(duì)其余的盒子,情況類似。同樣產(chǎn)生對(duì)應(yīng)的響應(yīng)主題。這一點(diǎn)在下面更詳細(xì)說明。每一新連接的建立,涉及保留系統(tǒng)存儲(chǔ)器及緩存器空間,和交換通信端口號(hào)碼及網(wǎng)絡(luò)地址,以便在連接端點(diǎn)之間傳送數(shù)據(jù)時(shí)使用。新連接的建立,還涉及規(guī)定通信協(xié)議及服務(wù)參數(shù)質(zhì)量(在某些系統(tǒng)中),或向代理注冊(cè)(在通過中介連接的系統(tǒng)中)。刪除連接則把保留的資源返還系統(tǒng)另作他用。把請(qǐng)求分配給多個(gè)連接,使用循環(huán)方法-但本發(fā)明不限于任何特定的工作負(fù)載共享或負(fù)載平衡算法。
性能特征本系統(tǒng)的性能是以通過量測(cè)量的-在給定時(shí)間內(nèi)系統(tǒng)可以服務(wù)的請(qǐng)求總數(shù)。測(cè)量通過量的時(shí)間稱為循環(huán)周期。通過量受如下三個(gè)參數(shù)的影響●并發(fā)的客戶數(shù);●對(duì)每一請(qǐng)求,前端節(jié)點(diǎn)與后端節(jié)點(diǎn)之間交換的消息(來自盒子的響應(yīng))的長度;和●對(duì)每一請(qǐng)求,需要在后端節(jié)點(diǎn)(盒子)上進(jìn)行的計(jì)算活動(dòng)(CPU負(fù)載)。
這些參數(shù)的第一個(gè),加在整個(gè)系統(tǒng)上,而其他兩個(gè)參數(shù),加在后端的盒子上。已經(jīng)觀察到,消息長度的增加(諸如當(dāng)處理不斷增加的數(shù)據(jù)密集型請(qǐng)求時(shí))與計(jì)算活動(dòng)的增加(諸如當(dāng)處理不斷增加的計(jì)算密集型請(qǐng)求時(shí)),有基本上相同的效應(yīng)-兩種盒子負(fù)載類型都導(dǎo)致通過量的下降。隨著系統(tǒng)負(fù)載的增加,網(wǎng)關(guān)與后端節(jié)點(diǎn)之間的流水線已經(jīng)用盡了它全部的容量。于是導(dǎo)致不能經(jīng)現(xiàn)有的連接增加通過量,和排隊(duì)延遲的隨后增加。
下面詳細(xì)說明(見“指定系統(tǒng)體系結(jié)構(gòu)及算法”一節(jié)),在可用帶寬約束條件內(nèi),增加連接數(shù)是有可能的(這對(duì)典型基于群集的系統(tǒng)是實(shí)質(zhì)性的)。這樣通過增加后端與前端節(jié)點(diǎn)之間的持續(xù)連接數(shù),可降低排隊(duì)延遲,從而改進(jìn)整個(gè)系統(tǒng)的性能。圖2對(duì)重的請(qǐng)求負(fù)載,畫出持續(xù)連接數(shù)對(duì)通過量的影響。
具體說,圖2A根據(jù)連接數(shù)的改變,畫出并發(fā)性對(duì)以通過量變化表示的性能的影響。各曲線表示如下不同的持續(xù)連接數(shù)曲線A表示1個(gè)連接;B表示5個(gè)連接;C表示15個(gè)連接;D表示20個(gè)連接;E表示30個(gè)連接;F表示60個(gè)連接;和G表示90個(gè)連接。
圖2B根據(jù)連接數(shù)的改變,畫出并發(fā)性對(duì)以排隊(duì)延遲變化表示的性能的影響。在圖2B中,被標(biāo)記的各曲線表示如下不同的持續(xù)連接數(shù)A=1、B=5、C=15、D=20、E=30、F=60、和G=90。
如圖2A所示,給定并發(fā)客戶數(shù)的系統(tǒng)的通過量,隨持續(xù)連接數(shù)的增加而增加,直至某一點(diǎn),超過該點(diǎn),系統(tǒng)通過量開始惡化(如以曲線G為例子)。圖2B反映類似的行為-排隊(duì)延遲作為增加連接數(shù)的結(jié)果而下降-直至某一點(diǎn),超過該點(diǎn),排隊(duì)延遲再次增加(如以曲線G為例子)。因此,存在連接數(shù)的上限,超出該上限,增加連接數(shù)不再對(duì)性能有利,反而有害。這種在連接數(shù)超過一最大數(shù)時(shí)性能的惡化和排隊(duì)延遲的增加,部分歸因于對(duì)資源的爭(zhēng)用,例如對(duì)可用的緩存器存儲(chǔ)器/系統(tǒng)存儲(chǔ)器的爭(zhēng)用,也部分歸因于額外開銷,例如同步化的處理。這種行為圖3中畫得更加清楚。
雖然圖2和3畫出實(shí)驗(yàn)的結(jié)果,把這些結(jié)果包括在本說明書內(nèi),僅作為舉例,以說明定量的變化和通常的行為。特別是圖2和3曲線表示的數(shù)值只是舉例,且圖2和3不代表相同的實(shí)驗(yàn)數(shù)據(jù)(所以,圖中以曲線表示的數(shù)值之間是有差別的)。
圖3中,標(biāo)記的曲線各代表不同的并發(fā)客戶數(shù)如下P=10;Q=50;R=100;S=200;和T=250。對(duì)給定的并發(fā)客戶數(shù),通過量開始隨連接數(shù)的增加而增加。超出給定的連接數(shù),通過量隨連接數(shù)的增加而迅速下降。例如,如圖3代表250個(gè)并發(fā)客戶的曲線T所示,隨連接數(shù)從1增加到20,通過量迅速增加。超過20個(gè)連接,通過量迅速下降。
對(duì)輕的請(qǐng)求(就是既非CPU密集型,也非數(shù)據(jù)密集型),增加連接數(shù)不給出多大的利益,但對(duì)連接數(shù)的界限也小于重的請(qǐng)求(就是CPU密集型或數(shù)據(jù)密集型,或兩者)。
監(jiān)測(cè)系統(tǒng)的性能基于群集的系統(tǒng)的性能特征,表明排隊(duì)延遲(或“網(wǎng)絡(luò)延遲”)是系統(tǒng)整體性能的一個(gè)重要的決定因素-不論負(fù)載或負(fù)載的類型。能夠開發(fā)由多個(gè)連接(在界限內(nèi))提供的并發(fā)性的優(yōu)點(diǎn),以降低排隊(duì)延遲和改進(jìn)系統(tǒng)的整體性能。特別是,一種自適應(yīng)系統(tǒng)能夠隨排隊(duì)延遲的變化改變連接數(shù),使之工作在最佳的區(qū)域。在本發(fā)明的實(shí)施例中,排隊(duì)延遲被用作被監(jiān)測(cè)的性能特征,而持續(xù)連接數(shù)被用作控制參數(shù),以改進(jìn)系統(tǒng)的整體性能。如圖4所示,在網(wǎng)關(guān)用如下方法計(jì)算排隊(duì)延遲(d)。
計(jì)算排隊(duì)延遲(d)現(xiàn)在參考圖1和4,前端(網(wǎng)關(guān))10從客戶50接收請(qǐng)求,并在把該請(qǐng)求轉(zhuǎn)發(fā)至后端20前,對(duì)請(qǐng)求加上時(shí)間標(biāo)記(以時(shí)間標(biāo)記TS1)。該時(shí)間標(biāo)記作為本地?cái)?shù)據(jù),存儲(chǔ)在網(wǎng)關(guān)10的控制線程中。后端接收該請(qǐng)求并處理該請(qǐng)求,還跟蹤處理時(shí)間。后端20把表明處理該請(qǐng)求所用時(shí)間的數(shù)據(jù),連同響應(yīng)發(fā)送回去。在接收響應(yīng)時(shí),前端再次對(duì)請(qǐng)求加上時(shí)間標(biāo)記(TS2)并用如下公式計(jì)算排隊(duì)延遲d=(TS2-TS1)一處理時(shí)間網(wǎng)關(guān)保持兩個(gè)變數(shù)“TotalDelay(總延遲)”和“Count(計(jì)數(shù))”,這兩個(gè)變數(shù)在初始化時(shí)設(shè)為零。對(duì)每一個(gè)已完成的請(qǐng)求,“TotalDelay”遞增延遲的值,而“Count”遞增1。在循環(huán)結(jié)束時(shí),以“Count”除“TotalDelay”,計(jì)算平均排隊(duì)延遲(dAV)。
為了使排隊(duì)延遲與連接數(shù)相關(guān),把系統(tǒng)校準(zhǔn)(或加“基準(zhǔn)標(biāo)記”)。這一校準(zhǔn)涉及對(duì)平均排隊(duì)延遲計(jì)算閾值(t),超出該閾值,不可能通過增加額外的連接來改進(jìn)性能。還存在一上限(h),超出該上限,進(jìn)一步增加連接事實(shí)上使性能惡化,所以還要校準(zhǔn)系統(tǒng)來計(jì)算該上限。對(duì)一定連接數(shù)計(jì)算閾值和上限的方法,說明于后。
計(jì)算排隊(duì)延遲閾值(t)圖2畫出通過量的變化,和對(duì)各種不同連接數(shù)畫出排隊(duì)延遲與客戶負(fù)載的關(guān)系。系統(tǒng)的校準(zhǔn),是對(duì)數(shù)據(jù)密集型和CPU密集型兩種請(qǐng)求,通過對(duì)每一連接數(shù)和并發(fā)客戶數(shù),畫出通過量和排隊(duì)延遲曲線(如在圖2A、2B、和3中所示)完成的。對(duì)通過量曲線,比較了1個(gè)連接和(1+a)個(gè)連接的兩條性能曲線,并識(shí)別最小客戶負(fù)載,在該負(fù)載上,通過量有x%的差?!畑’是對(duì)應(yīng)于最小百分比差的配置參數(shù),該配置參數(shù)證明修改連接數(shù)是合理的;x通常將隨系統(tǒng)變化。在本實(shí)施例中,用于選擇x的因素包括系統(tǒng)的穩(wěn)定性和使連接數(shù)振蕩最小的比要性。如果x值太低,系統(tǒng)狀態(tài)頻繁被干擾(對(duì)通過量中的每一增量x%)。對(duì)較少數(shù)量的并發(fā)客戶,修改連接數(shù)不會(huì)提供顯著的利益。
圖2A所示性能曲線,是對(duì)各個(gè)固定的連接數(shù)1、1+a、1+2a…等等,按各種客戶負(fù)載(并發(fā)客戶數(shù)),從一組離散點(diǎn)(負(fù)載、通過量)產(chǎn)生的。讓我們對(duì)1和1+a個(gè)連接,考慮一組離散點(diǎn)。對(duì)每一種客戶負(fù)載,找出從1個(gè)連接到1+a連接時(shí),通過量百分比的增加。把通過量的增加與需要的x值比較,從而識(shí)別我們獲得該增量時(shí)對(duì)應(yīng)的最小客戶負(fù)載。如果不是準(zhǔn)確相符,那么就識(shí)別兩個(gè)點(diǎn),使需要的通過量增量x位于該兩點(diǎn)之間。用線性內(nèi)插技術(shù)識(shí)別該最小客戶負(fù)載,就是在該負(fù)載上,通過從1個(gè)連接到1+a連接的變化,獲得通過量x%的增加。選擇的負(fù)載點(diǎn),被投影在排隊(duì)延遲曲線上,以找出1個(gè)連接時(shí)的排隊(duì)延遲值(因?yàn)橄到y(tǒng)初始時(shí),是向每一后端服務(wù)器配置單個(gè)連接的)。這一系列步驟能夠以計(jì)算機(jī)程序代碼實(shí)施,本領(lǐng)域熟練人員是熟知的。
圖2B所示性能曲線,是對(duì)各個(gè)固定的連接數(shù)1、1+a、1+2a…等等,畫出在各種客戶負(fù)載上的一組離散點(diǎn)(負(fù)載、排隊(duì)延遲)。對(duì)選擇的負(fù)載值,從圖2B找出排隊(duì)延遲。如果選擇的負(fù)載點(diǎn)的值,不能直接使用,那么就識(shí)別兩個(gè)點(diǎn),使選擇的負(fù)載值位于該兩點(diǎn)之間。用線性內(nèi)插技術(shù),找出選擇的負(fù)載的排隊(duì)延遲。
接著該過程的是,把負(fù)載點(diǎn)投影在排隊(duì)延遲曲線上,給出CPU密集型請(qǐng)求的閾值排隊(duì)延遲tc,及數(shù)據(jù)密集型請(qǐng)求的閾值排隊(duì)延遲td。然后計(jì)算這兩個(gè)值中的最小值tcdtcd=minimum(tc,td)對(duì)不同負(fù)載條件取最小值的方法,給出計(jì)算的值tcd,它是對(duì)CPU密集型和數(shù)據(jù)密集型請(qǐng)求負(fù)載的最低投影閾值排隊(duì)延遲。
從排隊(duì)延遲曲線(如圖2B所示),還可以對(duì)CPU密集型(dcm)和數(shù)據(jù)密集型(ddm),識(shí)別排隊(duì)延遲的最小值。然后,確定排隊(duì)延遲閾值t為tcd、dcm、和ddm的最大值t=maximum(tcd,dcm,ddm)這樣取得的最大值,是為了防止如下的潛在問題就是最低的投影排隊(duì)延遲閾值tcd,低于數(shù)據(jù)密集型和CPU密集型分別確定的最小值時(shí)可能產(chǎn)生的問題。如果閾值排隊(duì)延遲低于數(shù)據(jù)密集型和CPU密集型的最小值,盡管這種情況不大可能發(fā)生,但一旦發(fā)生,系統(tǒng)永遠(yuǎn)不能達(dá)到穩(wěn)態(tài)-連接數(shù)重復(fù)地增加,試圖把被監(jiān)測(cè)的排隊(duì)延遲值降到不可能達(dá)到的值,直至連接數(shù)達(dá)到上限。在確定投影的最小值tcd之后,取一最大值,可以避免這個(gè)潛在問題。
按照本實(shí)施例修改連接數(shù),將趨于但不能到達(dá)一確定的最佳連接數(shù);這認(rèn)為是可以接受的,以便確保該修改不致使性能惡化。實(shí)際上,通常的負(fù)載條件包括CPU密集型和數(shù)據(jù)密集型請(qǐng)求的混合,且每一請(qǐng)求的請(qǐng)求類型,在處理該請(qǐng)求之前是不清楚的。
計(jì)算連接數(shù)的上限(h)圖3對(duì)各種客戶負(fù)載,畫出通過量隨連接數(shù)的變化。系統(tǒng)已經(jīng)校準(zhǔn),以便對(duì)數(shù)據(jù)密集型請(qǐng)求和CPU密集型請(qǐng)求獲得類似的曲線。已經(jīng)識(shí)別最大通過量的點(diǎn),并且已經(jīng)投影,對(duì)該連接數(shù)得到了相應(yīng)的值。
如圖3所示的性能曲線,是對(duì)固定客戶負(fù)載畫出不同連接上的一組離散點(diǎn)(連接、通過量)。對(duì)每一客戶負(fù)載,通過量最大的點(diǎn)已經(jīng)識(shí)別,并記下相應(yīng)的連接數(shù)。然后,對(duì)所有曲線找出該值的最小值。
接著該過程的是,取得CPU密集型請(qǐng)求的上限hc和數(shù)據(jù)密集型請(qǐng)求的上限hd。連接數(shù)的上限是選擇該兩個(gè)值的最小值。
h=maximum(hc,hd)特定系統(tǒng)的體系結(jié)構(gòu)和算法下面的說明涉及自適應(yīng)的基于群集的系統(tǒng),該系統(tǒng)監(jiān)測(cè)網(wǎng)關(guān)與盒子之間的網(wǎng)絡(luò)延遲,并根據(jù)監(jiān)測(cè)的值增加/刪除連接。如上所述,該系統(tǒng)在初始時(shí)已經(jīng)校準(zhǔn),確定了閾值。
如圖5所示,運(yùn)行的基礎(chǔ)設(shè)施包括監(jiān)測(cè)器100和在系統(tǒng)10前端(網(wǎng)關(guān))的網(wǎng)關(guān)部件110?;鶞?zhǔn)標(biāo)記部件120保持網(wǎng)關(guān)110的配置和校準(zhǔn)信息。如上面參照?qǐng)D4所述,監(jiān)測(cè)器110對(duì)每一請(qǐng)求,在發(fā)送時(shí)對(duì)請(qǐng)求加上時(shí)間標(biāo)記,又在接收時(shí)對(duì)響應(yīng)加上時(shí)間標(biāo)記,并減去后端系統(tǒng)20監(jiān)測(cè)器130測(cè)量的處理時(shí)間,保持對(duì)排隊(duì)延遲d的跟蹤。把被監(jiān)測(cè)的處理時(shí)間,隨響應(yīng)發(fā)回前端系統(tǒng)。監(jiān)測(cè)器100還對(duì)一段時(shí)間周期上(循環(huán)時(shí)間)的排隊(duì)延遲求平均。循環(huán)時(shí)間是可以改變的配置參數(shù)。把延遲與閾值t比較,判定是否增加/刪除連接。如果平均排隊(duì)延遲dAV是在閾值的y%之內(nèi)(t-{yt/100}≤dAV≤t+{yt/100}),則不干擾系統(tǒng)。如果平均延遲與閾值t之差dAV大于y%,則改變表示連接數(shù)的N數(shù)。
步驟中連接數(shù)的改變a,例如每次添加或刪除2個(gè)連接(a=2),憑借選擇的該a值來降低該連接數(shù)的振蕩趨勢(shì)。檢驗(yàn)連接數(shù)的值N,看它是否在1(連接的最少值)與上限h之間。如果該值是在界限之內(nèi),則對(duì)是否/刪除一個(gè)或多個(gè)連接作出判定。在作出增加或刪除連接的判定之后,如下面所述,接著是網(wǎng)關(guān)與盒子的一個(gè)增加/刪除連接的協(xié)議。然后,在有規(guī)則的時(shí)間段上(循環(huán)時(shí)間)重復(fù)相同的過程。
使連接數(shù)適應(yīng)于當(dāng)前系統(tǒng)負(fù)載的方法的步驟系列,參照?qǐng)D6說明于下。
增加或刪除連接的協(xié)議在與諸如TCP/IP的網(wǎng)絡(luò)子系統(tǒng)的直接連接中,盡管我們保持多個(gè)打開的并行的連接,但不改變每一連接的服務(wù)器地址。相反,在諸如JMS的通過中介連接的子系統(tǒng)中,每一用戶要求一獨(dú)立的主題,所以前端和后端必須協(xié)調(diào)該主題名字。為解決命名問題,由前端10保持控制(見圖5)。如果前端10確定需要一額外的連接,前端向后端20發(fā)送附有需要的主題的消息。后端20在給定主題上產(chǎn)生一新的用戶,并向前端10發(fā)送確認(rèn)。然后,前端可以在新的連接上開始發(fā)送數(shù)據(jù)。
如在圖6中所示,管理持續(xù)連接數(shù)的過程,以單一連接(N=1)開始于200。當(dāng)一個(gè)循環(huán)周期期滿時(shí),該周期的平均排隊(duì)延遲dAV,由前端系統(tǒng)10中的監(jiān)測(cè)器,在步驟210,用該循環(huán)周期中對(duì)每一請(qǐng)求計(jì)算并保存的排隊(duì)延遲計(jì)算。確定計(jì)算的平均排隊(duì)延遲dAV是否在閾值排隊(duì)延遲t的預(yù)定百分比y%之內(nèi)。如果dAV是在t的y%之內(nèi),則可以認(rèn)為,修改連接數(shù)可能獲得的利益,不能證明執(zhí)行該任務(wù)是合理的。降低連接數(shù)可以在某種程度上降低通過量,但增加連接數(shù)將不提供實(shí)質(zhì)性利益(按照指定的x%標(biāo)準(zhǔn))。
如果在步驟220的確定是否定的,所以平均排隊(duì)延遲dAV與閾值排隊(duì)延遲t的之差大于y%,則在步驟230確定dAV是否大于t。如果dAV大于t,則保持在寄存器中的值N(代表當(dāng)前的連接數(shù))在步驟240增加一整數(shù)a(令N=N+a),獲得代表連接的潛在增加數(shù)的新值。在用該新值增加連接數(shù)前,在步驟250檢驗(yàn)該新值N是否小于或等于連接數(shù)的上限h。如果N小于或等于h,則在步驟260,通過增加a個(gè)連接,使連接數(shù)增加至N的新值。如果新值N高于上限h(由步驟250確定),該值N在步驟270重新置為上限h(令N=h),并把該新值N用于步驟280,把總連接數(shù)增加至上限h。
但是,如果確定步驟230確定,平均延遲dAV不大于閾值t,(即參照步驟220,比t至少小y%),則在步驟290,使N值遞減一整數(shù)a。在步驟300執(zhí)行檢驗(yàn),新的N值是否大于或等于1。
如果在步驟300確定,新的N值大于或等于1,則在步驟310,通過刪除a個(gè)連接,使實(shí)際連接數(shù)降低一整數(shù)值a?,F(xiàn)在,新設(shè)置的N值與系統(tǒng)中實(shí)際連接數(shù)一致。另外,如果步驟300確定的結(jié)果是,被確定新的N值小于1,則該N值在步驟320再次重新設(shè)置(令N=1)?,F(xiàn)在把該新的N值在步驟330用于實(shí)際連接數(shù),除留下一個(gè)連接外,刪除所有連接。
類似地,當(dāng)必須關(guān)閉連接時(shí),前端10對(duì)該連接加上備用標(biāo)記,以便不會(huì)有請(qǐng)求在該連接上發(fā)送。然后,前端10向后端20發(fā)送消息,該消息附有按該主題發(fā)送的最后一個(gè)消息的標(biāo)識(shí)。當(dāng)后端收到該指示消息時(shí),關(guān)閉該連接。當(dāng)前端收到對(duì)該消息的響應(yīng)時(shí),也關(guān)閉該連接。
在TCP/IP持續(xù)連接的情形中,當(dāng)需要增加連接時(shí),網(wǎng)關(guān)打開一新的與后端的連接,并開始在該連接上發(fā)送請(qǐng)求。當(dāng)需要關(guān)閉連接時(shí),網(wǎng)關(guān)停止在該連接上發(fā)送任何新的請(qǐng)求。在后端,檢測(cè)被關(guān)閉的連接,并在后端自動(dòng)地關(guān)閉該連接。
上述實(shí)施例能夠結(jié)合任何盒子工作。因此,一種自適應(yīng)的盒子-它能根據(jù)系統(tǒng)負(fù)載,改變(修改)它的配置參數(shù),以維持最佳的性能-能用于符合本發(fā)明實(shí)施例的系統(tǒng)。
本領(lǐng)域熟練人員知道,能夠在本發(fā)明的范圍內(nèi),對(duì)圖6所示舉出的處理作各種修改。例如,在步驟220中,確定平均排隊(duì)延遲dAV與閾值t的差別標(biāo)準(zhǔn)是由百分比之差確定的,但這不是本質(zhì)的-例如可以用t的最大值和最小值。此外,當(dāng)平均排隊(duì)延遲超過閾值t的某一特定百分比值y%時(shí),如果確定繼續(xù)修改連接數(shù)的過程,那么當(dāng)考慮平均排隊(duì)延遲dAV比閾值t小某一范圍時(shí),用一個(gè)不同的百分比值z(mì)%是適當(dāng)?shù)摹?br>
圖6的步驟220和230,可以用等效的單個(gè)確定步驟表示。借助步驟240的實(shí)施是以步驟250的結(jié)果為條件,步驟250可以放在步驟240之前,在這種情形下,不需要步驟270。同樣,借助步驟290的實(shí)施以步驟300的結(jié)果為條件,步驟300可以放在步驟290之前,于是不需要步驟320。步驟260添加的連接數(shù)a,可以與步驟310刪除的連接數(shù)不同(例如,如果系統(tǒng)的使用特征是,在快速的工作負(fù)載增加后接著是較不快速的逐漸減少,反之亦真)。
在上面詳細(xì)說明的實(shí)施例中,排隊(duì)延遲d,是作為請(qǐng)求的時(shí)間標(biāo)記和響應(yīng)的時(shí)間標(biāo)記之間的差,減去后端處理時(shí)間而計(jì)算的(d=(TS2-TS2)-處理時(shí)間)。在后端服務(wù)器直接把響應(yīng)發(fā)送至請(qǐng)求者客戶,而不經(jīng)過前端分配器發(fā)送響應(yīng)的實(shí)施例中,仍然可以把包括響應(yīng)時(shí)間標(biāo)記TS2的通知提供給前端節(jié)點(diǎn),以便能計(jì)算排隊(duì)延遲。
在另外的實(shí)施例中,監(jiān)測(cè)的通信延遲,是請(qǐng)求從第一數(shù)據(jù)處理單元發(fā)送和在第二數(shù)據(jù)處理單元開始處理之間的時(shí)間。這一點(diǎn)要求第一和第二數(shù)據(jù)處理單元之間的時(shí)鐘同步,但不要求測(cè)量處理時(shí)間或響應(yīng)時(shí)間標(biāo)記(從而對(duì)第二數(shù)據(jù)處理單元直接把響應(yīng)發(fā)送至請(qǐng)求者客戶,不經(jīng)過第一數(shù)據(jù)處理單元的系統(tǒng)有利)。
還有另外的實(shí)施例,是對(duì)基于群集的系統(tǒng)內(nèi)多個(gè)后端節(jié)點(diǎn)的每一個(gè),獨(dú)立地監(jiān)測(cè)通信延遲和修改連接數(shù)的。那么在網(wǎng)關(guān)上,要對(duì)每一后端節(jié)點(diǎn)提供分離的監(jiān)測(cè)器和連接管理器。盡管這樣的方案比群集內(nèi)持續(xù)地修改每一后端節(jié)點(diǎn)連接數(shù)的方案增加了復(fù)雜性,但這樣的方案,對(duì)網(wǎng)關(guān)與不同后端節(jié)點(diǎn)之間有不同類型連接的群集,是有利的。
上面說明的本發(fā)明的實(shí)施例,能夠在基于群集的Web服務(wù)器、Web應(yīng)用服務(wù)器、和在Web主管的服務(wù)實(shí)施方案中實(shí)施。一種按照本發(fā)明實(shí)施例的系統(tǒng),在遭受使許多常規(guī)系統(tǒng)性能下降的工作負(fù)載時(shí),能夠使持續(xù)連接數(shù)自適應(yīng)地變化,保持系統(tǒng)的性能。
權(quán)利要求
1.一種管理計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)處理單元之間持續(xù)連接的方法,其中第一數(shù)據(jù)處理單元連接至第二數(shù)據(jù)處理單元,以便把請(qǐng)求發(fā)送至第二數(shù)據(jù)處理單元處理,該方法包括步驟監(jiān)測(cè)從第一數(shù)據(jù)處理單元傳輸至第二數(shù)據(jù)處理單元的請(qǐng)求的通信延遲周期;把被監(jiān)測(cè)的通信延遲周期與閾值通信延遲周期比較,以確定被監(jiān)測(cè)的通信延遲周期是否表明某種預(yù)定性能條件;和在確定被監(jiān)測(cè)的通信延遲周期表明某種預(yù)定性能條件時(shí)作出響應(yīng),調(diào)整第一和第二數(shù)據(jù)處理單元之間的連接數(shù)。
2.按照權(quán)利要求1的方法,其中的比較步驟包括確定被監(jiān)測(cè)的延遲周期是否超過第一閾值延遲周期;以及其中調(diào)整連接數(shù)的步驟是作為對(duì)確定被監(jiān)測(cè)的延遲周期超過第一閾值的響應(yīng),建立至少一個(gè)附加的連接。
3.按照權(quán)利要求1的方法,其中的比較步驟包括確定被監(jiān)測(cè)的延遲周期是否小于第二閾值延遲周期;并且其中調(diào)整連接數(shù)的步驟是作為對(duì)確定被監(jiān)測(cè)的延遲周期小于第二閾值的響應(yīng),關(guān)閉至少一個(gè)連接。
4.按照權(quán)利要求3的方法,其中的比較步驟還包括確定被監(jiān)測(cè)的延遲周期是否超過第一閾值延遲周期;并且其中調(diào)整連接數(shù)的步驟是作為對(duì)確定被監(jiān)測(cè)的延遲周期超過第一閾值的響應(yīng),建立至少一個(gè)附加的連接。
5.按照權(quán)利要求1的方法,其中被監(jiān)測(cè)的延遲周期計(jì)算如下計(jì)算(1)與從第一數(shù)據(jù)處理單元至第二數(shù)據(jù)處理單元的請(qǐng)求的傳送相關(guān)的時(shí)間標(biāo)記和(2)與在第一數(shù)據(jù)處理單元對(duì)第二數(shù)據(jù)處理單元對(duì)所述請(qǐng)求的響應(yīng)的接收相關(guān)的時(shí)間標(biāo)記之間的差;和減去(3)作為第二數(shù)據(jù)處理單元內(nèi)處理請(qǐng)求的時(shí)間而測(cè)量的時(shí)間周期。
6.按照權(quán)利要求5的方法,其中被監(jiān)測(cè)的通信延遲周期,是在被監(jiān)測(cè)的通信延遲周期與閾值通信延遲周期的所述比較步驟之前對(duì)預(yù)定時(shí)間周期中處理的一組請(qǐng)求的平均。
7.按照權(quán)利要求2的方法,還包括校準(zhǔn)系統(tǒng)的步驟,用于確定第一閾值通信延遲周期,超過該第一閾值延遲周期希望建立至少一個(gè)附加的連接以降低通信延遲周期。
8.按照權(quán)利要求7的方法,其中用于確定第一閾值的校準(zhǔn)系統(tǒng)步驟包括對(duì)不同數(shù)量并發(fā)的客戶及不同數(shù)量的持續(xù)連接監(jiān)測(cè)通信延遲周期及對(duì)應(yīng)的請(qǐng)求通過量信息;確定并發(fā)的客戶的最小數(shù)量,通過在第一和第二數(shù)據(jù)處理單元之間增加持續(xù)的連接數(shù)一個(gè)整數(shù)值a,按該數(shù)量能夠使通過量增加預(yù)定的百分比;參照被監(jiān)測(cè)的通信延遲周期及對(duì)應(yīng)的請(qǐng)求通過量信息,識(shí)別與被確定的并發(fā)客戶最小數(shù)量對(duì)應(yīng)的通信延遲周期。
9. 按照權(quán)利要求8的方法,其中的校準(zhǔn)系統(tǒng)步驟是分開地對(duì)每一CPU-密集型請(qǐng)求及數(shù)據(jù)密集型請(qǐng)求執(zhí)行的,且該校準(zhǔn)步驟包括附加的步驟從已識(shí)別CPU-密集型請(qǐng)求的通信延遲周期及已識(shí)別數(shù)據(jù)密集型請(qǐng)求的通信延遲周期中選擇最小的通信延遲周期。
10.按照權(quán)利要求9的方法,還包括使用所述系統(tǒng)校準(zhǔn)確定第二閾值通信延遲周期,在該第二閾值以下不能期望關(guān)閉至少一個(gè)連接可以顯著增加通信延遲周期。
11.按照權(quán)利要求10的方法,其中的第一和第二閾值通信延遲周期,是作為百分比差值從選擇的最小通信延遲周期計(jì)算的。
12.按照權(quán)利要求2的方法,還包括在建立至少一個(gè)附加連接步驟之前檢驗(yàn)被調(diào)整的連接數(shù)是否超過最大許可連接數(shù)的步驟,其中,建立至少一個(gè)附加連接的步驟僅在被調(diào)整的連接數(shù)不超過最大許可數(shù)時(shí)執(zhí)行。
13.按照權(quán)利要求12的方法,還包括對(duì)不同數(shù)量的并發(fā)客戶及不同數(shù)量的持續(xù)連接監(jiān)測(cè)通信延遲周期及對(duì)應(yīng)的請(qǐng)求通過量信息;和最大許可連接數(shù)的確定如下對(duì)不同數(shù)量的并發(fā)的客戶從被監(jiān)測(cè)的請(qǐng)求通過量信息識(shí)別最大的通過量;對(duì)每一相應(yīng)的并發(fā)的客戶數(shù)識(shí)別與所述已識(shí)別的最大通過量對(duì)應(yīng)的持續(xù)連接數(shù);和從所述已識(shí)別的持續(xù)連接數(shù)中選擇一最小數(shù)。
14.按照權(quán)利要求1的方法,其中的第一數(shù)據(jù)處理單元是基于群集的數(shù)據(jù)處理系統(tǒng)的前端網(wǎng)絡(luò)網(wǎng)關(guān)節(jié)點(diǎn),而第二數(shù)據(jù)處理單元是基于群集的數(shù)據(jù)處理系統(tǒng)的后端處理節(jié)點(diǎn),該方法包括網(wǎng)關(guān)節(jié)點(diǎn)經(jīng)過網(wǎng)絡(luò)從客戶請(qǐng)求者接收請(qǐng)求,把接收的請(qǐng)求傳遞至一組后端處理節(jié)點(diǎn)的相應(yīng)各個(gè)節(jié)點(diǎn),從相應(yīng)的后端處理節(jié)點(diǎn)接收響應(yīng),并把接收的響應(yīng)轉(zhuǎn)發(fā)至客戶請(qǐng)求者;和后端處理節(jié)點(diǎn)處理從網(wǎng)關(guān)節(jié)點(diǎn)接收的請(qǐng)求產(chǎn)生響應(yīng),并把響應(yīng)轉(zhuǎn)發(fā)至網(wǎng)關(guān)節(jié)點(diǎn)。
15.按照權(quán)利要求14的方法,其中基于群集的數(shù)據(jù)處理系統(tǒng)包括多個(gè)后端處理節(jié)點(diǎn),且其中該方法對(duì)多個(gè)后端處理節(jié)點(diǎn)被監(jiān)測(cè)的通信延遲作出響應(yīng),不斷為多個(gè)后端處理節(jié)點(diǎn)修改持續(xù)連接數(shù)。
16.一種數(shù)據(jù)處理系統(tǒng),包括第一數(shù)據(jù)處理單元,用于從客戶請(qǐng)求者接收請(qǐng)求并把接收的請(qǐng)求傳遞至第二數(shù)據(jù)處理單元,還用于從第二數(shù)據(jù)處理單元接收響應(yīng)并把接收的響應(yīng)轉(zhuǎn)發(fā)至客戶請(qǐng)求者;和第二數(shù)據(jù)處理單元,用于處理從第一數(shù)據(jù)處理單元接收的請(qǐng)求產(chǎn)生響應(yīng),并把響應(yīng)轉(zhuǎn)發(fā)至第一數(shù)據(jù)處理單元;和連接管理器,用于管理第一與第二數(shù)據(jù)處理單元之間的連接數(shù),該連接管理器能對(duì)表明某種預(yù)定性能條件的第一與第二數(shù)據(jù)處理單元之間被監(jiān)測(cè)的通信延遲作出響應(yīng),修改第一與第二數(shù)據(jù)處理單元之間的持續(xù)連接數(shù)。
17.按照權(quán)利要求16的數(shù)據(jù)處理系統(tǒng),其中第二數(shù)據(jù)處理單元包括監(jiān)測(cè)器,用于監(jiān)測(cè)和記錄與第二數(shù)據(jù)處理單元處理請(qǐng)求所用時(shí)間對(duì)應(yīng)的處理時(shí)間周期;和第一數(shù)據(jù)處理單元包括監(jiān)測(cè)器,用于記錄第一時(shí)間標(biāo)記和第二時(shí)間標(biāo)記以便確定第一時(shí)間標(biāo)記與第二時(shí)間標(biāo)記之間的差,該第一時(shí)間標(biāo)記當(dāng)請(qǐng)求從第一數(shù)據(jù)處理單元發(fā)送至第二數(shù)據(jù)處理單元時(shí)產(chǎn)生,而該第二時(shí)間標(biāo)記當(dāng)對(duì)所述請(qǐng)求的響應(yīng)被第一數(shù)據(jù)處理單元從第二數(shù)據(jù)處理單元接收時(shí)產(chǎn)生,該監(jiān)測(cè)器還從所述差減去所述處理時(shí)間周期來計(jì)算通信延遲周期。
18.一種數(shù)據(jù)處理系統(tǒng),包括網(wǎng)絡(luò)子系統(tǒng);網(wǎng)關(guān)節(jié)點(diǎn),用于從客戶請(qǐng)求者接收請(qǐng)求并把接收的請(qǐng)求傳遞至網(wǎng)絡(luò)子系統(tǒng),以便送至一組后端處理節(jié)點(diǎn)之一,還用于經(jīng)過網(wǎng)絡(luò)子系統(tǒng)從后端處理節(jié)點(diǎn)接收響應(yīng)并把接收的響應(yīng)轉(zhuǎn)發(fā)至客戶請(qǐng)求者;和一組后端處理節(jié)點(diǎn),用于處理經(jīng)過網(wǎng)絡(luò)子系統(tǒng)從網(wǎng)關(guān)節(jié)點(diǎn)接收的請(qǐng)求以產(chǎn)生響應(yīng),還用于把響應(yīng)經(jīng)過網(wǎng)絡(luò)子系統(tǒng)轉(zhuǎn)發(fā)至網(wǎng)關(guān)節(jié)點(diǎn);連接管理器,用于管理網(wǎng)關(guān)節(jié)點(diǎn)與每一個(gè)后端處理節(jié)點(diǎn)之間的連接數(shù),該連接管理器能對(duì)表明某種預(yù)定性能條件的網(wǎng)關(guān)節(jié)點(diǎn)與后端處理節(jié)點(diǎn)之間被監(jiān)測(cè)的通信延遲作出響應(yīng),修改網(wǎng)關(guān)節(jié)點(diǎn)與后端處理節(jié)點(diǎn)中至少第一個(gè)之間的持續(xù)連接數(shù)。
19.按照權(quán)利要求18的數(shù)據(jù)處理系統(tǒng),其中的連接管理器對(duì)該組后端處理節(jié)點(diǎn)被監(jiān)測(cè)的通信延遲作出響應(yīng),不斷為所有該組后端處理節(jié)點(diǎn)修改持續(xù)連接數(shù)。
20.按照權(quán)利要求18的數(shù)據(jù)處理系統(tǒng),其中該組后端處理節(jié)點(diǎn)的每一個(gè)都包括監(jiān)測(cè)器,用于監(jiān)測(cè)和記錄與各后端處理節(jié)點(diǎn)處理請(qǐng)求所用時(shí)間對(duì)應(yīng)的處理時(shí)間周期,和網(wǎng)關(guān)節(jié)點(diǎn)包括監(jiān)測(cè)器,用于記錄第一時(shí)間標(biāo)記和第二時(shí)間標(biāo)記以便確定第一時(shí)間標(biāo)記與第二時(shí)間標(biāo)記之間的差,該第一時(shí)間標(biāo)記當(dāng)請(qǐng)求從網(wǎng)關(guān)節(jié)點(diǎn)發(fā)送至所述后端處理節(jié)點(diǎn)的相應(yīng)各個(gè)節(jié)點(diǎn)時(shí)產(chǎn)生,而該第二時(shí)間標(biāo)記當(dāng)對(duì)所述請(qǐng)求的響應(yīng)被網(wǎng)關(guān)節(jié)點(diǎn)從各后端處理節(jié)點(diǎn)接收時(shí)產(chǎn)生,該監(jiān)測(cè)器還從所述差減去所述處理時(shí)間周期來計(jì)算通信延遲周期。
21.按照權(quán)利要求18的數(shù)據(jù)處理系統(tǒng),其中的連接管理器包括用于比較被監(jiān)測(cè)的通信延遲及第一閾值通信延遲周期的裝置,且其中的連接管理器在所述比較步驟確定被監(jiān)測(cè)的通信延遲超過第一閾值時(shí)作出響應(yīng),在網(wǎng)關(guān)節(jié)點(diǎn)與每一個(gè)后端處理節(jié)點(diǎn)之間建立至少一個(gè)附加的持續(xù)連接。
22.按照權(quán)利要求18的數(shù)據(jù)處理系統(tǒng),其中的連接管理器包括用于比較被監(jiān)測(cè)的通信延遲及第二閾值通信延遲周期的裝置,且其中的連接管理器在所述比較步驟確定被監(jiān)測(cè)的通信延遲小于第二閾值延遲周期時(shí)作出響應(yīng),在網(wǎng)關(guān)節(jié)點(diǎn)與每一個(gè)后端處理節(jié)點(diǎn)之間關(guān)閉至少一個(gè)連接。
23.按照權(quán)利要求18的數(shù)據(jù)處理系統(tǒng),其中該組后端處理節(jié)點(diǎn)是群集的Web服務(wù)器的節(jié)點(diǎn)。
24.一種管理網(wǎng)關(guān)節(jié)點(diǎn)與一組后端處理節(jié)點(diǎn)的每一個(gè)之間的持續(xù)連接的方法,所述后端處理節(jié)點(diǎn)安排在數(shù)據(jù)處理系統(tǒng)中的群集內(nèi),該方法包括步驟監(jiān)測(cè)從網(wǎng)關(guān)節(jié)點(diǎn)傳送到后端處理節(jié)點(diǎn)的請(qǐng)求的通信延遲周期;把被監(jiān)測(cè)的通信延遲周期與閾值通信延遲周期比較,確定被監(jiān)測(cè)的通信延遲周期是否表明某種預(yù)定性能條件;和當(dāng)確定被監(jiān)測(cè)的通信延遲周期表明某種預(yù)定性能條件時(shí)作出響應(yīng),調(diào)整網(wǎng)關(guān)節(jié)點(diǎn)與至少一個(gè)該組后端節(jié)點(diǎn)之間的連接數(shù)。
25.按照權(quán)利要求24的方法,其中的比較步驟包括確定被監(jiān)測(cè)的延遲周期是否超過第一閾值延遲周期,且其中在確定被監(jiān)測(cè)的延遲周期超過第一閾值時(shí)作出響應(yīng),執(zhí)行調(diào)整連接數(shù)的步驟,建立至少一個(gè)附加的連接。
26.按照權(quán)利要求24的方法,其中的比較步驟包括確定被監(jiān)測(cè)的延遲周期是否小于第二閾值延遲周期,且其中在確定被監(jiān)測(cè)的延遲周期小于第二閾值時(shí)作出響應(yīng),執(zhí)行調(diào)整連接數(shù)的步驟,關(guān)閉至少一個(gè)連接。
27.按照權(quán)利要求24的方法,其中被監(jiān)測(cè)的通信延遲周期計(jì)算如下計(jì)算(1)與從第一數(shù)據(jù)處理單元至第二數(shù)據(jù)處理單元的請(qǐng)求的傳送相關(guān)的時(shí)間標(biāo)記和(2)與在第一數(shù)據(jù)處理單元對(duì)第二數(shù)據(jù)處理單元對(duì)所述請(qǐng)求的響應(yīng)的接收相關(guān)的時(shí)間標(biāo)記之間的差;和減去(3)作為后端處理節(jié)點(diǎn)內(nèi)處理請(qǐng)求的時(shí)間而測(cè)量的時(shí)間周期。
28.按照權(quán)利要求27的方法,其中,在所述比較被監(jiān)測(cè)的延遲周期與閾值延遲周期步驟之前,對(duì)預(yù)定時(shí)間周期中處理的一組請(qǐng)求計(jì)算平均的被監(jiān)測(cè)通信延遲周期,且其中被監(jiān)測(cè)的延遲周期的比較包括把計(jì)算的平均被監(jiān)測(cè)延遲周期與閾值延遲周期比較。
29.按照權(quán)利要求25的方法,還包括校準(zhǔn)系統(tǒng)的步驟,用于確定第一閾值通信延遲周期,超過該第一閾值延遲周期希望建立至少一個(gè)附加的連接以降低通信延遲周期。
30.按照權(quán)利要求25的方法,還包括在建立至少一個(gè)附加連接步驟之前檢驗(yàn)被調(diào)整的連接數(shù)是否超過最大許可連接數(shù)的步驟,其中,建立至少一個(gè)附加連接的步驟僅在被調(diào)整的連接數(shù)不超過最大許可數(shù)時(shí)執(zhí)行。
31.按照權(quán)利要求30的方法,還包括對(duì)不同數(shù)量的并發(fā)客戶及不同數(shù)量的持續(xù)連接監(jiān)測(cè)通信延遲周期及對(duì)應(yīng)的請(qǐng)求通過量信息;和最大許可連接數(shù)的確定如下對(duì)不同數(shù)量的并發(fā)的客戶從被監(jiān)測(cè)的請(qǐng)求通過量信息識(shí)別最大的通過量;對(duì)每一相應(yīng)的并發(fā)的客戶數(shù)識(shí)別與所述已識(shí)別的最大通過量對(duì)應(yīng)的持續(xù)連接數(shù);和從所述已識(shí)別的持續(xù)連接數(shù)中選擇一最小數(shù)。
32.一種計(jì)算機(jī)程序產(chǎn)品,包括記錄在記錄媒體上的程序碼,用于控制執(zhí)行該程序碼的數(shù)據(jù)處理系統(tǒng)的操作,該程序碼包括連接管理器,用于通過如下步驟管理系統(tǒng)的第一數(shù)據(jù)處理單元與第二數(shù)據(jù)處理單元之間的連接數(shù)監(jiān)測(cè)從第一數(shù)據(jù)處理單元傳輸至第二數(shù)據(jù)處理單元的請(qǐng)求的通信延遲周期;把被監(jiān)測(cè)的通信延遲周期與閾值通信延遲周期比較,確定被監(jiān)測(cè)的通信延遲周期是否表明某種預(yù)定性能條件;和在確定被監(jiān)測(cè)的延遲周期表明某種預(yù)定性能條件時(shí)作出響應(yīng),調(diào)整第一和第二數(shù)據(jù)處理單元之間的連接數(shù)。
33.一種數(shù)據(jù)處理系統(tǒng),包括網(wǎng)關(guān)節(jié)點(diǎn),用于從客戶請(qǐng)求者接收請(qǐng)求并把接收的請(qǐng)求傳遞至一組后端處理節(jié)點(diǎn)之一,還用于從后端處理節(jié)點(diǎn)接收響應(yīng)并把接收的響應(yīng)轉(zhuǎn)發(fā)至客戶請(qǐng)求者;和一組排列在群集內(nèi)的后端處理節(jié)點(diǎn),用于處理從網(wǎng)關(guān)節(jié)點(diǎn)接收的請(qǐng)求以產(chǎn)生響應(yīng),還用于把響應(yīng)轉(zhuǎn)發(fā)至網(wǎng)關(guān)節(jié)點(diǎn);連接管理器,用于管理網(wǎng)關(guān)節(jié)點(diǎn)與每一個(gè)后端節(jié)點(diǎn)之間的連接數(shù),該連接管理器能對(duì)表明某種預(yù)定性能條件的網(wǎng)關(guān)節(jié)點(diǎn)與后端處理節(jié)點(diǎn)之間被監(jiān)測(cè)的通信延遲作出響應(yīng),修改網(wǎng)關(guān)節(jié)點(diǎn)與后端處理節(jié)點(diǎn)中至少第一個(gè)之間的持續(xù)連接數(shù)。
全文摘要
本發(fā)明公開一種方法、設(shè)備、和計(jì)算機(jī)程序,用于改進(jìn)基于群集的數(shù)據(jù)處理系統(tǒng)的性能及資源利用率。根據(jù)這些節(jié)點(diǎn)之間被監(jiān)測(cè)的通信性能,調(diào)整系統(tǒng)的第一和第二數(shù)據(jù)處理單元之間的持續(xù)連接數(shù)。被監(jiān)測(cè)性能的測(cè)量,是這些節(jié)點(diǎn)之間的排隊(duì)延遲,而隨著變化的負(fù)載條件使排隊(duì)延遲增加和減少,該連接數(shù)也增加和減少。一種建立和關(guān)閉持續(xù)連接的方法,用于對(duì)前端網(wǎng)關(guān)計(jì)算機(jī)與后端服務(wù)器每一個(gè)群集之間被監(jiān)測(cè)的排隊(duì)延遲,作出響應(yīng),改進(jìn)基于群集的Web服務(wù)器的性能或提供Web服務(wù)的性能。不需要的連接被關(guān)閉,以便能把系統(tǒng)資源分配給其他的處理。
文檔編號(hào)H04L12/56GK1610347SQ20041008418
公開日2005年4月27日 申請(qǐng)日期2004年10月15日 優(yōu)先權(quán)日2003年10月22日
發(fā)明者吉利施·彼姆拉奧·莎弗勒, 曼加拉·格維利·南達(dá) 申請(qǐng)人:國際商業(yè)機(jī)器公司