張文宇 周琪云
(江西師范大學(xué)計(jì)算機(jī)信息工程學(xué)院 江西 南昌 330022)
?
自適應(yīng)過(guò)濾預(yù)測(cè)在連接集中器中的應(yīng)用研究
張文宇周琪云
(江西師范大學(xué)計(jì)算機(jī)信息工程學(xué)院江西 南昌 330022)
摘要DB2以線程的方式處理所有事務(wù),利用連接集中器優(yōu)化線程的資源消耗。針對(duì)實(shí)際應(yīng)用中大量連接請(qǐng)求導(dǎo)致的線程資源使用過(guò)高問(wèn)題,建立改進(jìn)的連接集中器模型,提出并實(shí)現(xiàn)在應(yīng)用服務(wù)器上連接集中器的資源預(yù)測(cè)。通過(guò)自適應(yīng)過(guò)濾預(yù)測(cè)模型構(gòu)建連接集中器,在保證其高性能的同時(shí),預(yù)測(cè)代理的資源使用情況,事先分配資源建立代理。測(cè)試結(jié)果及預(yù)測(cè)分析表明,改進(jìn)后的連接集中器有效降低線程的資源消耗,提高事務(wù)處理的響應(yīng)時(shí)間,同時(shí)保證服務(wù)器資源得到合理的分配。
關(guān)鍵詞連接集中器時(shí)間序列自適應(yīng)過(guò)濾預(yù)測(cè)數(shù)據(jù)庫(kù)
ON APPLYING ADAPTIVE FILTERING PREDICTION IN CONNECTION CONCENTRATOR
Zhang WenyuZhou Qiyun
(School of Computer and Information Engineering,Jiangxi Normal University,Nanchang 330022,Jiangxi,China)
AbstractDB2 database handles all affairs in the form of threads and uses the connection concentrator to optimise the resources consumption of threads. Aiming at the problem of high thread resources consumption in a large number of connection requests in practical application,we built an improved connection concentrator model,proposed and implemented the prediction of connection concentrator resources on application server. To construct the connection concentrator by adaptive filtering prediction model,the scheme predicts the resource usage of agent while ensuring the high efficiency of connection concentrator,the resources are allocated in advance to establish the agency. Test results and prediction analysis showed that the improved connection concentrator could reduce the resource consumption of thread effectively,improve the response time of the transaction request,and ensure the server resources to be allocated reasonably at the same time.
KeywordsConnection concentratorTime seriesAdaptive filteringPredictionDatabase
0引言
DB2數(shù)據(jù)庫(kù)在銀行、證券等金融行業(yè)有著廣泛應(yīng)用,能夠?yàn)榭蛻?hù)提供可靠的數(shù)據(jù)保障,具有良好的安全性、兼容性和擴(kuò)展性。更重要的是,DB2數(shù)據(jù)庫(kù)擁有穩(wěn)定的性能,在數(shù)據(jù)的并行處理、存儲(chǔ)優(yōu)化、分布式訪問(wèn)等方面與其他數(shù)據(jù)庫(kù)相比存在著明顯的優(yōu)勢(shì)。連接集中器是DB2用來(lái)優(yōu)化數(shù)據(jù)庫(kù)連接的一種方法。在DB2中,所有事務(wù)都是在線程的上下文中進(jìn)行處理,那么在高容量環(huán)境中線程的資源使用情況便非常值得關(guān)注。連接集中器將很多數(shù)據(jù)庫(kù)連接分插到集中的代理進(jìn)程或線程上,由這些代理處理傳來(lái)的任務(wù),以減少大量線程所帶來(lái)的資源開(kāi)銷(xiāo)。連接集中器不同于我們經(jīng)常提到的連接池,連接集中器與線程的上下文切換相關(guān)?;趯?shí)際的事務(wù)負(fù)載,在不要求外部應(yīng)用程序斷開(kāi)連接的情況下實(shí)現(xiàn)資源重用,決定當(dāng)事務(wù)結(jié)束后代理將服務(wù)于哪一個(gè)應(yīng)用程序。而連接池與數(shù)據(jù)庫(kù)連接本身相關(guān),需要在外部應(yīng)用程序斷開(kāi)連接后讓另一個(gè)應(yīng)用程序重用,決定當(dāng)連接斷開(kāi)后代理是否與連接保持在一起?,F(xiàn)在,由于應(yīng)用程序往往會(huì)建立較長(zhǎng)時(shí)間的數(shù)據(jù)庫(kù)連接(幾天甚至幾個(gè)月),所以連接池已變得不那么重要,而連接集中器則是必不可少的組件。盡管現(xiàn)有的連接集中器在一定程度上可以降低資源消耗,但在并發(fā)量大、實(shí)時(shí)性強(qiáng)的環(huán)境中,代理的資源消耗仍然很高,導(dǎo)致事務(wù)處理的響應(yīng)時(shí)間過(guò)長(zhǎng)。
本文從改進(jìn)連接集中器出發(fā),提出在連接集中器上實(shí)現(xiàn)資源消耗的預(yù)測(cè)方法。即基于自適應(yīng)過(guò)濾模型構(gòu)建連接集中器,對(duì)代理資源的消耗情況進(jìn)行事先預(yù)測(cè),保證現(xiàn)有資源得到更好的利用。
1連接集中器
1.1連接集中器原理
連接集中器的代理池存放著服務(wù)于應(yīng)用程序請(qǐng)求的代理進(jìn)程。代理進(jìn)程能夠重用外部連接,即多個(gè)排隊(duì)的應(yīng)用程序可以重復(fù)使用一個(gè)存在的代理。連接集中器的代理分為邏輯代理和工作代理。邏輯代理對(duì)應(yīng)外部的應(yīng)用程序連接,工作代理則擁有實(shí)際的線程資源,并執(zhí)行應(yīng)用程序的事務(wù)請(qǐng)求。連接集中器初始化時(shí),代理池內(nèi)創(chuàng)建少量的代理進(jìn)程。由于沒(méi)有外部連接請(qǐng)求存在,代理池中的代理處于待命狀態(tài),即為空閑代理;當(dāng)有外部程序連接到數(shù)據(jù)庫(kù)時(shí),空閑代理開(kāi)始服務(wù)這些新建連接而變?yōu)閰f(xié)調(diào)代理;當(dāng)事務(wù)處理完畢且外部連接斷開(kāi)后,協(xié)調(diào)代理將重新返回到空閑代理狀態(tài)。分配器是連接集中器的關(guān)鍵組件,它將入站的連接或事務(wù)請(qǐng)求分配給代理進(jìn)程,并控制連接到代理進(jìn)程的多路復(fù)用。連接集中器允許多個(gè)請(qǐng)求同時(shí)連接數(shù)據(jù)庫(kù),以減少創(chuàng)建連接的內(nèi)存消耗,同時(shí)避免頻繁的刪除和創(chuàng)建代理所帶來(lái)的系統(tǒng)開(kāi)銷(xiāo)[1]。
1.2連接集中器改進(jìn)
為最大限度減少服務(wù)器資源消耗,提高事務(wù)處理的響應(yīng)時(shí)間,本文首先對(duì)連接集中器進(jìn)行改進(jìn)。
建立改進(jìn)模型如圖1所示。模型設(shè)計(jì)分為三部分:控制單元、數(shù)據(jù)緩沖區(qū)及隊(duì)列通道。其中控制單元包括預(yù)測(cè)控制器和代理池,由預(yù)測(cè)控制器完成對(duì)代理池的預(yù)測(cè)、控制和管理;數(shù)據(jù)緩沖區(qū)為高速存儲(chǔ)區(qū)域,對(duì)外部應(yīng)用程序的數(shù)據(jù)進(jìn)行存儲(chǔ);隊(duì)列通道則連通于控制單元與數(shù)據(jù)緩沖區(qū),用來(lái)完成數(shù)據(jù)的傳輸。
圖1 改進(jìn)模型
模型將控制單元的代理池在邏輯上劃分為空閑池和活動(dòng)池,每個(gè)子池與一個(gè)信號(hào)量關(guān)聯(lián),每個(gè)信號(hào)量的引用計(jì)數(shù)[2]監(jiān)控子池中的代理數(shù)目。由預(yù)測(cè)控制器替代原有的分配器,根據(jù)外部連接請(qǐng)求數(shù)提前預(yù)測(cè)空閑池中的代理數(shù),并分配相應(yīng)的系統(tǒng)資源。當(dāng)有外部連接請(qǐng)求時(shí),預(yù)測(cè)控制器負(fù)責(zé)將空閑池內(nèi)的空閑代理轉(zhuǎn)移到活動(dòng)池中并分配給連接請(qǐng)求。請(qǐng)求完畢或連接斷開(kāi)后,代理將返回到空閑池,代理資源的釋放與否也由預(yù)測(cè)控制器決定(如圖2所示)。需要說(shuō)明的是,所有預(yù)測(cè)活動(dòng)均在服務(wù)器空閑時(shí)完成,并不占用繁忙時(shí)段的系統(tǒng)資源。
圖2 預(yù)測(cè)控制器
數(shù)據(jù)緩沖區(qū)利用共享內(nèi)存臨時(shí)存儲(chǔ)應(yīng)用程序數(shù)據(jù),減少數(shù)據(jù)在代理進(jìn)程間的拷貝次數(shù),提高運(yùn)行效率。模型將數(shù)據(jù)緩沖區(qū)劃分一定數(shù)量的存儲(chǔ)單元,每個(gè)存儲(chǔ)單元記錄一條數(shù)據(jù)。存儲(chǔ)單元定義空閑(Idle)、寫(xiě)滿(mǎn)(Full)、讀空(Empty)、寫(xiě)回(Write-Back)等四種狀態(tài)。利用狀態(tài)間的轉(zhuǎn)換實(shí)現(xiàn)進(jìn)程間的同步互斥,進(jìn)而避免讀寫(xiě)數(shù)據(jù)緩沖區(qū)產(chǎn)生的沖突。存儲(chǔ)單元的狀態(tài)轉(zhuǎn)換如圖3所示。
圖3 狀態(tài)轉(zhuǎn)換圖
隊(duì)列通道完成控制單元與數(shù)據(jù)緩沖區(qū)的交互功能。當(dāng)數(shù)據(jù)緩沖區(qū)的存儲(chǔ)單元處于“Full”狀態(tài)時(shí),將對(duì)應(yīng)存儲(chǔ)單元編號(hào)發(fā)送給隊(duì)列通道,即有連接請(qǐng)求或事務(wù)請(qǐng)求到來(lái)??刂茊卧獜年?duì)列通道接收編號(hào)并分配空閑代理,代理按照指定的存儲(chǔ)單元讀取數(shù)據(jù)進(jìn)行事務(wù)操作,操作結(jié)束后將結(jié)果按編號(hào)直接寫(xiě)回相應(yīng)的存儲(chǔ)單元。
2預(yù)測(cè)控制器
2.1自適應(yīng)過(guò)濾模型
自適應(yīng)過(guò)濾是建立在歷史時(shí)間序列觀測(cè)值的基礎(chǔ)上進(jìn)行最優(yōu)加權(quán)平均的預(yù)測(cè)方法,能夠自動(dòng)調(diào)整權(quán)數(shù),是一種可變系數(shù)的預(yù)測(cè)模型。基本思路是:通過(guò)分析時(shí)間序列原始數(shù)據(jù),計(jì)算初始的權(quán)數(shù)序列,在預(yù)測(cè)過(guò)程中反復(fù)迭代調(diào)整權(quán)數(shù),過(guò)濾掉誤差,選擇出最佳的預(yù)測(cè)權(quán)數(shù)序列,并利用新的權(quán)數(shù)序列進(jìn)行未來(lái)的預(yù)測(cè)活動(dòng)。
模型的形式化[3]表示如下:設(shè)x1,x2,…,xt為某一時(shí)間序列,則關(guān)于時(shí)間序列的預(yù)測(cè)模型為:
(1)
(2)
對(duì)自適應(yīng)過(guò)濾模型分析后得出預(yù)測(cè)過(guò)程如下:
(1) 初值和系數(shù)的確定
(3) 計(jì)算預(yù)測(cè)誤差et+1
2.2基于自適應(yīng)過(guò)濾模型的預(yù)測(cè)控制器
考慮到實(shí)際的業(yè)務(wù)訪問(wèn)請(qǐng)求往往具有周期性和規(guī)律性,同時(shí)又可能存在一定波動(dòng)以及變化趨勢(shì),也就是說(shuō)預(yù)測(cè)活動(dòng)受時(shí)間因素和具體業(yè)務(wù)影響。比如在銀行業(yè)務(wù)中每天存在著幾個(gè)高峰時(shí)段,對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)非常頻繁,顯然需要更多的代理資源。如果預(yù)測(cè)控制器僅對(duì)當(dāng)天的代理資源進(jìn)行全局預(yù)測(cè),必然會(huì)產(chǎn)生較大的誤差及資源浪費(fèi)??紤]到時(shí)間段和誤差,本文對(duì)預(yù)測(cè)控制器進(jìn)行如下構(gòu)建[4,5]:
(1) 數(shù)據(jù)處理利用一階差分和標(biāo)準(zhǔn)化處理公式對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行無(wú)量綱處理,消除數(shù)據(jù)的趨勢(shì)和波動(dòng)。
Δxi=xi+1-xi
(3)
(4)
式中,1≤i≤p,t為預(yù)測(cè)期數(shù)。
(2) 權(quán)數(shù)調(diào)整對(duì)權(quán)數(shù)調(diào)整公式進(jìn)行修改以提高預(yù)測(cè)精度。
(5)
(3) 預(yù)測(cè)執(zhí)行對(duì)一天24小時(shí)進(jìn)行半小時(shí)分隔,構(gòu)建48個(gè)局部預(yù)測(cè)對(duì)象,利用連續(xù)10天內(nèi)相同時(shí)段的數(shù)據(jù)建立預(yù)測(cè)模型,完成下一天代理資源的預(yù)測(cè)。 進(jìn)行預(yù)測(cè)時(shí),預(yù)測(cè)控制器依照?qǐng)D4所示流程執(zhí)行。當(dāng)然預(yù)測(cè)資源是在服務(wù)器空閑時(shí)進(jìn)行,而在服務(wù)器正常工作時(shí)僅完成代理的分配與解分配任務(wù)。
圖4 執(zhí)行流程
3測(cè)試實(shí)驗(yàn)及預(yù)測(cè)分析
根據(jù)連接集中器的改進(jìn)模型和預(yù)測(cè)理論,基于Linux平臺(tái)設(shè)計(jì)實(shí)現(xiàn)連接集中器,并已應(yīng)用在江西省電子信息產(chǎn)業(yè)振興和技術(shù)改造項(xiàng)目中。為驗(yàn)證連接集中器在高容量環(huán)境中的性能表現(xiàn)及預(yù)測(cè)效果,本文模擬大量連接請(qǐng)求進(jìn)行測(cè)試實(shí)驗(yàn),同時(shí)分析實(shí)際應(yīng)用過(guò)程中的預(yù)測(cè)效果。
3.1測(cè)試環(huán)境
測(cè)試環(huán)境包括1臺(tái)數(shù)據(jù)庫(kù)服務(wù)器、1臺(tái)應(yīng)用服務(wù)器和3臺(tái)壓力測(cè)試機(jī),所有配置均為Intel i3-2130 3.40 GHz處理器,2 GB內(nèi)存。兩臺(tái)服務(wù)器均運(yùn)行RedHat Enterprise Linux 6.4,測(cè)試機(jī)運(yùn)行Windows XP,數(shù)據(jù)庫(kù)為DB2 V9.7,連接集中器部署在應(yīng)用服務(wù)器上。HP Loadrunner 11作為測(cè)試工具用來(lái)模擬大量連接請(qǐng)求,同時(shí)利用rstatd service監(jiān)控系統(tǒng)資源的使用情況。
3.2測(cè)試分析
本文共設(shè)計(jì)兩組測(cè)試實(shí)驗(yàn),分別對(duì)改進(jìn)連接集中器和DB2內(nèi)置連接集中器進(jìn)行對(duì)比測(cè)試,分析其處理能力、響應(yīng)時(shí)間及資源使用情況。將DB2內(nèi)置連接集中器的主要參數(shù)進(jìn)行配置[6]:MAX_CONNECTIONS=300,MAX_COORDAGENTS=100,NUM_INITAGENTS=100,NUM_POOLAGENTS=100。測(cè)試結(jié)果如圖5和圖6所示,對(duì)比發(fā)現(xiàn)改進(jìn)連接集中器性能明顯優(yōu)于DB2內(nèi)置連接集中器,尤其在響應(yīng)時(shí)間方面有較大提升。
圖5 處理能力
圖6 平均響應(yīng)時(shí)間
測(cè)試過(guò)程中系統(tǒng)資源的使用情況如表1和表2所示,對(duì)比分析得出,改進(jìn)后連接集中器使數(shù)據(jù)庫(kù)服務(wù)器的User CPU使用率大幅下降,應(yīng)用服務(wù)器User CPU使用率略有升高,而Memory和System CPU使用率兩者則幾乎相同。改進(jìn)的連接集中器降低了數(shù)據(jù)庫(kù)服務(wù)器的資源消耗,釋放出更多的資源。
表1 改進(jìn)連接集中器資源利用率
表2 DB2連接集中器資源利用率
3.3預(yù)測(cè)分析
選取實(shí)際應(yīng)用過(guò)程中連續(xù)20天內(nèi)9:00至9:30時(shí)刻的數(shù)據(jù)進(jìn)行預(yù)測(cè)分析。由前10組數(shù)據(jù)建立初始預(yù)測(cè)模型,此后每連續(xù)10組數(shù)據(jù)進(jìn)行訓(xùn)練來(lái)調(diào)整權(quán)數(shù),并預(yù)測(cè)下一期的代理數(shù)。取學(xué)習(xí)常數(shù)k=0.00000038,4個(gè)權(quán)數(shù)φ1,φ2,φ3,φ4,對(duì)數(shù)據(jù)訓(xùn)練后生成初始預(yù)測(cè)模型為:
根據(jù)以上模型進(jìn)行第一次預(yù)測(cè),經(jīng)過(guò)多次權(quán)數(shù)調(diào)整后再重新執(zhí)行預(yù)測(cè),整個(gè)預(yù)測(cè)過(guò)程如圖7所示。
圖7 預(yù)測(cè)分析
從圖7可以看出,自適應(yīng)過(guò)濾預(yù)測(cè)模型對(duì)代理資源的預(yù)測(cè)具有較高的精度,預(yù)測(cè)曲線接近于實(shí)際曲線,且計(jì)算得出其擬合精度[7-9]達(dá)90%,迭代調(diào)整次數(shù)約為800次。也就是說(shuō),連接集中器能夠快速、高效地預(yù)測(cè)代理資源的使用情況,提前分配代理來(lái)服務(wù)于連接請(qǐng)求,保證了系統(tǒng)資源的合理利用[10]。
4結(jié)語(yǔ)
本文針對(duì)DB2數(shù)據(jù)庫(kù)在實(shí)際應(yīng)用中存在的資源分配問(wèn)題,在現(xiàn)有連接集中器的基礎(chǔ)上進(jìn)行改進(jìn),引入自適應(yīng)過(guò)濾預(yù)測(cè)模型,最大限度降低資源的消耗,保證資源的合理分配。測(cè)試結(jié)果及實(shí)際應(yīng)用表明,改進(jìn)的連接集中器使服務(wù)器的資源消耗和響應(yīng)時(shí)間得到明顯改善。今后的工作將進(jìn)一步分析連接集中器在高實(shí)時(shí)性、高并發(fā)性下的優(yōu)化規(guī)律,同時(shí)研究對(duì)各種異常情況的處理機(jī)制。
參考文獻(xiàn)
[1] 呂健波,戴冠中,幕德俊.絕對(duì)延遲保證在Web應(yīng)用服務(wù)器數(shù)據(jù)庫(kù)連接池中的實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2012,29(5):1838-1841.
[2] 羅榮,唐學(xué)兵.基于JDBC的數(shù)據(jù)庫(kù)連接池的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2004,30(9):92-93,111.
[3] 徐國(guó)祥.統(tǒng)計(jì)預(yù)測(cè)和決策[M].上海: 上海財(cái)經(jīng)大學(xué)出版社,2012.
[4] 田占偉,劉臣,王磊,等.基于模糊PA算法的微博信息傳播分享預(yù)測(cè)研究[J]. 計(jì)算機(jī)應(yīng)用研究,2014,31(1): 51-54.
[5] Yanyan Zheng,Renzuo Xu. An Adaptive Exponential Smoothing Approach for Software Reliability Prediction[C]//WiCom’08.04th International Conference,2008,1-4.
[6] 牛新莊.DB2數(shù)據(jù)庫(kù)性能調(diào)整和優(yōu)化[M].北京: 清華大學(xué)出版社. 2009.
[7] 馬華林,李翠鳳,張立燕.基于灰色模型和自適應(yīng)過(guò)濾的網(wǎng)絡(luò)流量預(yù)測(cè)[J].計(jì)算機(jī)工程,2009,35(1):130-131,152.
[8] 馬華林,張立燕.基于自適應(yīng)過(guò)濾法和馬爾柯夫鏈的網(wǎng)絡(luò)流量預(yù)測(cè)方法[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(12): 216-218.
[9] 趙飛.基于殘差自回歸和自適應(yīng)過(guò)濾的生活能源消費(fèi)量組合預(yù)測(cè)模型[J].統(tǒng)計(jì)與決策,2010(3),162-163.
[10] 陶庭葉,高飛,吳兆福.自適應(yīng)過(guò)濾法及其在大壩監(jiān)測(cè)中的應(yīng)用[J].測(cè)繪科學(xué),2009,34(5): 181-182.
中圖分類(lèi)號(hào)TP311
文獻(xiàn)標(biāo)識(shí)碼A
DOI:10.3969/j.issn.1000-386x.2016.02.015
收稿日期:2014-08-14。江西省電子信息產(chǎn)業(yè)振興和技術(shù)改造項(xiàng)目(2013- 260)。張文宇,碩士生,主研領(lǐng)域:網(wǎng)絡(luò)與數(shù)據(jù)庫(kù)。周琪云,教授。