999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于M/M/n/n排隊系統的動態數據庫連接池

2016-12-21 00:46:24毛云峰邵劍飛
新技術新工藝 2016年10期
關鍵詞:數據庫用戶模型

毛云峰,邵劍飛

(昆明理工大學 信息工程與自動化學院,云南 昆明 650500)

?

基于M/M/n/n排隊系統的動態數據庫連接池

毛云峰,邵劍飛

(昆明理工大學 信息工程與自動化學院,云南 昆明 650500)

對系統并發性能進行優化時,通常采用連接池技術進行數據庫的訪問。針對大量用戶環境下數據庫訪問需求,分析了傳統數據庫連接池的不足,并在此基礎上,提出了一種基于M/M/n/n損失制多服務窗排隊系統的動態連接池模型。該模型根據排隊系統參量變化,動態改變數據庫連接池規模,使系統既能滿足正常的連接需求,又能滿足高并發量下的連接請求,有效改善了系統性能。試驗結果表明,在高并發量連接請求下,系統能夠適應連接需求,且系統性能優于應用傳統連接池的系統。

JDBC;連接池;排隊論;M/M/n/n模型;動態調整

隨著Web應用系統的不斷發展,對于Web應用系統的性能也提出了更高的要求。在規模較大和復雜性較高的Web應用中,如何保證在負載數量迅速增長、系統資源動態變化的情況下,讓Web應用的服務質量(QoS)滿足客戶的需求,成為Web應用開發的一個重要課題。例如,對于用戶量龐大的各大電商,如何解決其性能問題,在保證用戶可以正常使用的同時,提高用戶滿意度則成為開發關鍵。為了提高系統性能,減少用戶訪問系統時等待的時間,對數據庫連接的優化也成為提高Web應用性能的一大重要因素[1]。近年的研究熱點主要是如何改進連接池技術,使得系統資源得到更合理的應用。

數據庫連接作為Java應用程序與數據庫溝通的樞紐,一般每當有數據庫連接請求時,應用程序通過JDBC建立連接、執行SQL語句、完成操作后,再關閉連接。面對頻繁的數據庫訪問,使用數據庫連接池可以極大地緩解這種壓力,其基本思想就是連接復用。數據庫連接池是指預先創建一定量數據庫連接,在用戶請求時直接取得連接,使用后再將連接返回到池中以便其他請求調用[2]。

目前,有關數據庫連接池技術存在的難點是連接池管理如何有效控制連接池規模,既不造或系統資源浪費,又能保證系統并發訪問需求,成為研究連接池技術的目標。本文以傳統連接池技術為基礎,提出一種基于排隊系統動態調整連接池大小的模型(Dynamic Database Connection Pool model,DDCP)。該模型首先對大量的連接請求進行排隊,得出相應的目標參量;然后通過各參量得出響應因素,以此驅動擴展連接池動態調整,從而改善系統性能。

1 相關研究

傳統的數據庫連接池是通過XML配置連接池參數,包括連接池名,初始連接數,連接池的最大、最小容量,數據庫的位置URL和驅動程序類名等。在某些應用環境(如高并發和大規模應用系統)中,這樣的靜態配置策略往往不能滿足實際需求。如:連接池容量過大則造成資源浪費,而過小又無法滿足系統需求。

文獻[3]采用基于XML配置連接池控制參數,給出了可以根據用戶需求動態自適應的連接池優化方法。在連接池的調度算法中采用類似工作集的策略,同時對用戶實行優先級管理。這種配置策略優點是可以根據過去對資源的使用情況決定連接池的大小,以及連接池中各連接的優先級,利用Java緩存技術實現資源的分級調度;但是沒有考慮大并發量情況下,對于用戶的請求應該怎樣管理。文獻[4]提出了基于日志文件的記錄自動優化方法,該方法的基本思路是設計具有物理連接和管理策略功能的連接池類庫,對連接對象按照預定策略進行分配、釋放連接等操作。創建監視線程類分析配置文件的內容,依據配置文件動態調整連接池中的參數配置。文獻[5]引入離散時間排隊論思想,建立離散時間多服務臺排隊模型。采用嵌入馬爾科夫鏈方法,分析并導出請求阻塞率、系統平均連接數、系統利用率和系統吞吐量等系統性能指標參量, 為數據庫連接池

技術建立了離散時間多服務臺損失制的Geom/Geom/c/c排隊模型,雖然分析了該模型并發訪問性能;但是沒有考慮實際中連接池的大小對系統性能的影響。文獻[6]提出了一種動態自適應的數據庫連接方案,該方案采用參數匹配算法對連接池參數進行優化,動態調整配置文件,運用連接池并發調度策略達到連接池自適應調整的目的;但是,當并發請求數達到一定數量時,動態修改配置文件會造成一部分資源浪費,響應速度還是會有所降低。文獻[7-9]從數據庫連接池技術的具體實現和性能優化的角度進行了研究,并取得了一些有意義的成果。

上述相關研究表明,大多數研究者都認識到動態連接池能夠使系統性能得到提示;但有效的影響因素還有待進一步討論,并根據影響因素有針對性地給出了解決方案。

2 基于排隊系統的連接池模型

2.1 連接池模型

本文將應用程序發出的連接請求看作服務系統中的顧客,將連接池中預先創建的連接看作服務窗,連接超時則拋出異常。根據數據庫連接池的工作原理,建立損失制多服務窗排隊模型M/M/n/n,對應用程序中的大量連接請求進行排隊;然后在基本連接池的基礎上引入擴展連接池,通過池管理器配置參數和控制消息的傳遞,以獲取系統性能指標,并根據動態優化策略,創建新連接和阻塞擴展連接。DDCP模型示意圖如圖1所示。

圖1 DDCP模型示意圖

2.2 排隊系統

能否有效處理不同數量的數據庫訪問連接請求,是評價一個Web應用性能的指標之一。如果連接請求和連接池中連接數量不協調,系統性能必定會下降;因此,在DDCP模型中,使用M/M/n/n排隊系統對請求進行排隊,通過排隊模型得出系統中平均排隊隊長、平均等待時間等目標參量,以此作為動態調整連接池規模的參數,從而盡可能多地處理連接請求。

圖2 M/M/n/n狀態流圖

由圖2可寫出平衡條件下K氏代數方程。

對0狀態,有λp0=μp1,設λ/μ=ρ1,故有:

p1=ρ1p0

對1狀態,有λp1=2μp2,故有:

對k-1狀態,有λpk-1=kμpk,故有:

對n-1狀態,有λpn-1=nμpn,故有:

(1)

式中,pk是狀態概率。于是:

(2)

故相應的目標參量[10]如下。

1)損失概率為:

(3)

2)平均進入系統的顧客數λe為:

(4)

3)系統在單位時間內占用服務窗的均值為:

(5)

4)系統服務窗的效率為:

(6)

5)顧客被服務時間即平均等待時間為:

(7)

根據排隊系統中平均系統隊長Ls和平均等待時間Ws,確定模型中響應系數,構造擴展連接池的執行響應因素。當Web應用性能下降時,根據響應因素觸發擴展連接池中數據庫連接的創建或阻塞活動,從而達到實現動態調整連接池的目的。

3 動態調整機制

3.1 連接請求執行過程中的調整策略

在實際運行中,當應用程序請求數據庫連接時,如果基本連接池中有空閑的連接,或連接數未超過基本連接池限制,則分配給該請求或新建連接供該請求使用;如果基本連接池中無空閑連接,則激活擴展連接池。根據上述情況,應用程序的連接請求存在2種變化趨勢,分別為連接請求量漸增和連接請求量逐漸減少。

1)當連接請求量漸增時,基本連接池中的連接都將逐漸處于工作狀態,這時將激活擴展連接池。設請求處理完成的全部時間為T,調用連接等花費的時間為Ts,處理請求花費的時間為Tp。為了衡量系統的響應速度,在連接請求處理完成的時間T內,應盡可能減少等待時間,提高請求處理時間的占有率,因此本文定義響應系數Tc:

(8)

Tc值的大小直接反映了所有連接請求的響應速率,Tc值越大,系統響應速度越快,性能越好;反之,系統性能越差。連接池管理器根據Tc的值,判斷系統性能,當性能下降時,連接池管理器做出相應調整。

2)當連接請求量逐漸減少時,由于已激活擴展連接池,連接池中連接數量處于過剩狀態。連接損失率P損減小,平均等待時間Ws和平均系統隊長Ls隨之不斷變化,設Tmax為請求處理過程中Tc的最大值,根據上述排隊模型參量分析,本文定義連接阻塞指標Ta為:

(9)

當Tc逐漸減少時,連接池中的連接數大于系統連接請求。當Tc逐漸減少到Ta時,池管理器觸發阻塞連接步驟;當Tc值大約減少到Tmax/2時,即Tc=Tmax/2±Δ(Δ→0),則停止連接阻塞步驟,以避免請求數過少或為0時,連接池規模隨之變小或變為0,這樣確保系統中還有一定數量的連接[11]。

3.2 連接池動態調整策略

3.2.1 連接池初始大小判定算法

本文采用日志文件記錄連接池的連接信息。在發生連接請求時,為每個連接請求自動分配ID,分別將獲取連接和釋放連接的時間寫入日志文件中,從而可以根據連接的開始時間和結束時間計算并發連接數和并發持續時間,并寫入配置文件中,以供下次啟動應用時初始化連接池。其基本算法為:將每個連接的參數作為參考值,遍歷其后的每個連接,當獲取連接的時間小于參考連接的開始時間時,則視為并發連接,為計數器加1。實現算法的偽代碼如下:

public LogFile(String filePah){

for(i=1;i

for(j=i;j

if(staTime[j]

count++;}

if(endTime[j]>=Time[i]]){

temConnTime=

endTime[j]-staTime[j]; }

}

}

vec.add(count);

vec.add(max(temConnTime));

return vec;

}

3.2.2 連接池動態調整算法

在M/M/n/n排隊模型和連接請求的2個狀態,提出一個連接調度算法。算法的偽代碼以及主要步驟如下。

1)接收應用程序連接請求,由M/M/n/n模型進行排隊,輸出平均系統隊長Ls和平均等待時間Ws。

2)連接池管理器開始記錄相應系數的值,存放在數組array1[]中。

3)while(array1[i]

createNewConnection();

if(Tc→k)

break;//跳出步驟3)

}

4)連接池管理器記錄連接阻塞指標的值。

5)while(array1[i]<=Ta){

阻塞擴展連接池中的連接;

if(擴展連接池中的連接未激活)

停止連接阻塞步驟;

else if(Tc=Tmax/2±Δ,Δ→0){

停止連接阻塞并跳出步驟5);

}

6)重復執行步驟1和步驟2。

上述動態調整算法,利用響應系數和阻塞指標對連接池規模進行調整,由于響應系數和阻塞指標引入了平均系統隊長Ls和平均等待時間Ws,合理地評估了影響連接池性能的因素,以此調整連接池規模,有利于提升系統響應時間和性能。

4 試驗與分析

通過上述分析,本文基于筆者所在團隊開發的網上報名系統項目,采用壓力測試工具Apache Jmeter分別模擬10、25、50、100和200個用戶的連接請求,每個用戶迭代10次,即不同用戶環境下連接請求的用戶數的10倍;然后在傳統數據庫連接池、文獻[6]中的自適應連接池模型以及基于DDCP模型的連接池分別做測試并統計測試結果。本文的試驗環境為:2.7 GHz Intel core i5,4 G內存,Windows操作系統;Eclipse LUNA,Tomcat;Jmeter 2.13。

為了便于分析試驗結果,在網上報名系統上分別應用DDCP模型和傳統的數據庫連接池,分別部署到Tomcat服務器上,使用Jmeter測試工具模擬連接請求。

試驗結果將從系統的平均響應時間、90%用戶的響應時間、請求錯誤率以及吞吐量等對系統性能進行比較[12]。試驗結果見表1~表3。其中,吞吐量表示每秒完成的請求數。

表1 傳統連接池模型

表2 自適應連接池模型

表3 DDCP模型

從表1~表3中可以看出,當用戶數較少,并發連接請求量較小時,系統對請求的平均響應時間相當,對90%用戶的響應時間相差不大,應用DDCP模型的系統吞吐量表現較好;隨著用戶數增多,應用DDCP模型的系統對請求的平均響應時間、對90%用戶的響應時間以及系統吞吐量相應增加,和自適應連接池模型性能相當,但相對于應用傳統連接池的系統表現較好;當用戶數達到200個時,迭代后的并發請求量達到2 000,應用DDCP模型的系統平均響應時間較傳統連接池有明顯改善,自適應連接池模型的系統次之,并且該次測試中,2種模型發生的請求錯誤率為0.00%,而應用傳統連接池的系統發生0.40%請求錯誤率。試驗數據表明,DDCP模型相對于傳統連接池有明顯優勢,且對于自適應連接池模型性能有所提高,從而有效改善了系統性能。

5 結語

本文提出了一種基于M/M/n/n排隊系統的動態數據庫連接池模型,完成理論分析并根據調整算法實現高并發量下,通過調整連接池規模,達到有效改善系統性能的目的。該模型的特點在于連接池基于排隊系統得出目標參量,利用這些參量計算出影響連接池規模的響應系數,并通過響應系數動態地調整連接池。原型試驗驗證了DDCP模型能夠根據系統的需求,合理調整連接池規模,保證系統的高性能,同時也最大限度地利用了資源,避免了系統資源的浪費。

[1] 修永富.JDBC數據庫連接池技術及其在JSP中的實現[J].中國教育技術裝備, 2011(18):110-111.

[2] 馬海燕,彭宇行.基于JDBC數據庫連接池的自適應管理策略研究[J].計算機應用研究, 2006,23(2):57-59.

[3] 朱長生,沈云付.自適應數據庫連接池的研究[J].計算機工程與應用, 2003,39(36):187-190.

[4] Li B Z, Jing Z J, Liu Y J, et al. XML configuration-based self-adaptive database connection pooling in NMVS[C]//Computer Science and Information Technology, 2009.

[5] 霍占強,張錦程,王志衡.數據庫連接池的數學建模與性能分析[J].計算機工程, 2014,40(10):32-36.

[6] 牛毅,劉峰,徐川.一種動態自適應的圖片服務器數據庫連接方案[J]. 中國安防, 2015(6):79-83.

[7] 王國亮,安世全.一種數據庫連接池的動態控制策略[J].重慶郵電大學學報:自然科學版, 2007, 19(4):446-449.

[8] 曾國林,傅秀芬.一種新的數據庫連接池模型的研究[J].計算機與數字工程, 2011,39(2):163-166.

[9] 孟培超,胡圣波,舒恒,等.基于ADO數據庫連接池優化策略[J].計算機工程與設計, 2013, 34(5):1706-1715.

[10] 陸傳賚.排隊論[M]. 2版. 北京: 北京郵電大學出版社, 2009.

[11] 陳寧江,林盤.一種基于排隊系統的啟發式中間件動態線程池管理機制[J].計算機科學, 2010, 37(10):161-164.

[12] 康明光,廖勝利,程春田,等. 管家式自適應數據庫連接池及其應用[J]. 南方電網技術,2012, 6(1):78-82.

責任編輯 鄭練

Dynamic Database Connection Pool based on M/M/n/n Queuing Model

MAO Yunfeng, SHAO Jianfei

(College of Information Engineering and Automation, Kunming University of Science and Technology, Kunming 650500, China)

When optimizing the concurrent performance of the application, the connection pool technology is usually used to access the database. In order to meet the demand of database access in a large number of users, firstly, analyse the deficiencies of the traditional database connection pool; then, a dynamic connection pool queuing model with multi-service based on the M/M/n/n is proposed. According to parameters of the queuing model, the application dynamically changes the size of the database connection pool, which can satisfy the requirement of the normal connection, and meet the requirement of a large number of concurrent connections to improve the performance of the application. Experiments verify that this model can meet the requirement of the connection in face of a large number of concurrent connection request, and show that this model is better than that of the traditional connection pool.

JDBC, connection pool, queuing theory, M/M/n/n queuing model, dynamic adjustment

TP 392

A

毛云峰(1992-),男,碩士研究生,主要從事移動應用研究、大數據分析和網絡安全等方面的研究。

2016-05-31

猜你喜歡
數據庫用戶模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
3D打印中的模型分割與打包
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
主站蜘蛛池模板: 国产麻豆精品久久一二三| 波多野结衣一区二区三视频| 国产极品美女在线| 精品一区二区三区波多野结衣| 91免费国产在线观看尤物| 欧美啪啪网| 国产精欧美一区二区三区| 国产精品漂亮美女在线观看| 69视频国产| 99久久国产精品无码| 高清无码一本到东京热| 国产成人精品午夜视频'| 国产福利一区在线| 国产三级毛片| 精品国产自在现线看久久| 国产精品免费p区| 最新国产麻豆aⅴ精品无| 久久久久免费精品国产| 国产精品偷伦在线观看| 91精品专区国产盗摄| 乱系列中文字幕在线视频| 国产精品原创不卡在线| 五月婷婷丁香色| 亚洲中文字幕久久无码精品A| 亚洲第一黄色网址| 国产精品妖精视频| 亚洲综合色婷婷| 日韩高清成人| 成人国产一区二区三区| 亚洲无码视频图片| 国产一二视频| 在线观看国产精美视频| 天天色天天操综合网| 国产精品国产三级国产专业不| 青青草国产一区二区三区| 欧美午夜在线视频| 国产精品无码制服丝袜| 天天视频在线91频| 91成人在线免费视频| 婷婷色狠狠干| 综合色婷婷| 色综合天天视频在线观看| 欧美亚洲国产日韩电影在线| 欧美精品1区| h视频在线观看网站| 国产在线91在线电影| 欧美精品三级在线| 在线观看av永久| 欧美在线综合视频| 九色免费视频| 久久久久九九精品影院 | 麻豆精品在线| 人妻夜夜爽天天爽| av尤物免费在线观看| 午夜精品福利影院| 国产欧美在线观看一区| 亚洲性影院| 国产精品55夜色66夜色| 日本人妻一区二区三区不卡影院 | 国产人成网线在线播放va| 日韩精品一区二区深田咏美| 欧亚日韩Av| 精品无码一区二区三区在线视频| 天天色综网| 国产精品手机在线播放| 国产剧情一区二区| 天天色综网| 亚洲AV永久无码精品古装片| 在线免费观看a视频| 亚洲欧美色中文字幕| 亚洲首页在线观看| 国产精品亚洲一区二区三区在线观看| 日韩AV手机在线观看蜜芽| 亚洲欧美另类久久久精品播放的| 国产毛片不卡| 色噜噜狠狠狠综合曰曰曰| 国产欧美视频一区二区三区| 国产精品一区在线观看你懂的| 国产高清精品在线91| 91青青草视频在线观看的| 波多野结衣视频一区二区 | 国产久草视频|