霍占強,張錦程,王志衡
(河南理工大學計算機科學與技術(shù)學院,河南焦作454000)
數(shù)據(jù)庫連接池的數(shù)學建模與性能分析
霍占強,張錦程,王志衡
(河南理工大學計算機科學與技術(shù)學院,河南焦作454000)
為有效地配置數(shù)據(jù)庫連接池中的系統(tǒng)參數(shù),根據(jù)數(shù)據(jù)庫連接池管理過程的工作原理,引入離散時間排隊論的思想,建立多服務(wù)臺損失制的Geom/Geom/c/c離散時間排隊模型。采用嵌入馬爾科夫鏈方法,分析系統(tǒng)穩(wěn)態(tài)隊長的轉(zhuǎn)移概率矩陣及其滿足的遞推關(guān)系式。應用模型的理論分析結(jié)果,導出請求阻塞概率、系統(tǒng)平均連接數(shù)、系統(tǒng)利用率、系統(tǒng)吞吐量等系統(tǒng)性能指標的數(shù)學表達式。通過實驗證明了數(shù)據(jù)庫連接池性能指標與系統(tǒng)配置參數(shù)之間的依賴關(guān)系。
數(shù)據(jù)庫連接池;性能分析;數(shù)學建模;離散時間排隊論;Geom/Geom/c/c模型;多服務(wù)臺
在軟件系統(tǒng)開發(fā)過程中,數(shù)據(jù)庫訪問是非常重要的環(huán)節(jié),特別是在信息管理系統(tǒng)的開發(fā)過程中,數(shù)據(jù)庫訪問是必不可少的步驟。數(shù)據(jù)庫連接作為一種與數(shù)據(jù)庫交互的關(guān)鍵資源,在應用程序尤其是多用戶的網(wǎng)頁程序中顯得尤為重要。連接的復用能夠提高連接的利用率,提高系統(tǒng)對數(shù)據(jù)庫操作的性能,減少系統(tǒng)開銷。連接池的核心是連接復用,因此數(shù)據(jù)庫連接池在系統(tǒng)開發(fā)中的應用越來越廣泛。
文獻[1]通過3種不同的數(shù)據(jù)庫訪問模式下的性能對比測試,對基于連接池的數(shù)據(jù)庫訪問性能的提高給出了一個定量的數(shù)據(jù)。文獻[2]提出基于日志文件記錄的數(shù)據(jù)庫連接池的自優(yōu)化配置方法。文獻[3]給出了在J2EE架構(gòu)下,基于XML的數(shù)據(jù)庫連接池參數(shù)配置的詳細配置方法。文獻[4-6]從數(shù)據(jù)庫連接池技術(shù)的具體實現(xiàn)和性能優(yōu)化的角度進行了研究并取得一些有意義的成果。以上文獻要么應用實測數(shù)據(jù)分析的方法進行研究,要么從數(shù)據(jù)庫連接池實現(xiàn)及優(yōu)化的角度進行研究,目前尚未發(fā)現(xiàn)應用數(shù)學模型的方法對數(shù)據(jù)庫連接池技術(shù)進行性能分析的文獻。
數(shù)據(jù)庫連接池技術(shù)性能分析及評價的研究方法可分為3類[7]:實測數(shù)據(jù)分析方法,仿真研究方法以及數(shù)學模型分析方法。其中,數(shù)學模型分析方法具有既適用于已有的系統(tǒng),又適用于尚未存在的系統(tǒng)且分析費用低的特點[8-9]。本文應用數(shù)學模型分析方法,為數(shù)據(jù)庫連接池技術(shù)建立了離散時間多服務(wù)臺排隊模型。經(jīng)典離散時間排隊模型的分析可見文獻[10,11-13]等。
本文根據(jù)數(shù)據(jù)庫連接池技術(shù)的工作原理,建立多服務(wù)臺損失制的Geom/Geom/c/c離散時間排隊模型,對模型進行了理論分析,并導出請求阻塞概率、系統(tǒng)平均連接數(shù)、系統(tǒng)利用率、系統(tǒng)吞吐量等系統(tǒng)性能指標的表達式。
連接池的管理是數(shù)據(jù)庫連接池工作原理中的重要組成部分。在數(shù)據(jù)庫連接池中,連接可以分為正在使用的連接(忙碌連接)和未被使用的連接(空閑連接)2種。連接池管理過程如圖1所示。
圖1 數(shù)據(jù)庫連接池管理過程
連接池管理過程具體如下:
(1)當客戶請求數(shù)據(jù)庫連接時,首先查看連接池中是否有空閑連接,如果存在空閑連接,則取出一個空閑連接分配給客戶使用,同時將該連接標記為忙碌連接,如圖1中①所示。
(2)如果沒有空閑連接,則查看當前空閑連接和忙碌連接的總數(shù)是否已經(jīng)達到系統(tǒng)設(shè)置的最大連接數(shù),如果沒達到就重新創(chuàng)建一個連接給請求的客戶,如圖1中②所示;如果達到就按設(shè)定的最大等待時間進行等待,如果超出最大等待時間,則拋出異常給客戶,如圖1中③所示。
(3)當客戶使用連接結(jié)束時,將連接放回連接池中,以提高連接復用率,同時將該連接標記為空閑連接,如圖1中④所示。
在數(shù)據(jù)庫連接池的管理過程中,將一個數(shù)據(jù)庫連接看作一個服務(wù)臺,將一個連接請求看作一個顧客的到達。假設(shè)客戶請求的到達過程為Bernolli到達過程,一個連接的使用時間服從幾何分布,最小連接數(shù)等于最大連接數(shù)且在沒有空閑連接的情況下,連接請求被拒絕,采用先到先服務(wù)的策略,可將數(shù)據(jù)庫連接池的管理過程建模為多服務(wù)臺損失制的Geom/Geom/c/c離散時間排隊模型。
3.1 模型描述
時間軸被分割為固定間隔的小段,稱為時隙。到達只能發(fā)生在每個時隙的末端t=n-處(n=1, 2,…),稱為晚到系統(tǒng)。
為明確定義離散時刻t=n時系統(tǒng)中的顧客數(shù),約定服務(wù)開始和結(jié)束都發(fā)生于t=n處。如果顧客于n-到達,并且在t=n時有顧客離開,則在t=n時可立即開始服務(wù)。這樣的系統(tǒng)稱為有直接入口[12]。顧客到達和離去行為如圖2所示。
圖2 顧客到達與離去行為示意圖
每一個時隙末端以概率p發(fā)生一個到達,以概率p—=1-p無到達,不同時隙上的到達相互獨立。換言之,到達間隔T服從幾何分布:
顧客的服務(wù)時間S也服從幾何分布:
到達間隔與服務(wù)時間相互獨立。系統(tǒng)中有c個服務(wù)臺,如果顧客到達遇c個服務(wù)臺都被占用,并且沒有顧客在他到達的時刻離開,該顧客將被拒絕進入系統(tǒng)。
3.2 模型分析
設(shè)Ln=L(n+)表示時刻t=n+在系統(tǒng)中的顧客數(shù)。按到達和離去行為的約定,t=n-到達的顧客將計入Ln,而時刻t=n離去的顧客不計入在內(nèi)。{Ln,n≥1}是一個Markov鏈,有狀態(tài)空間Ω={0,1,…,c},轉(zhuǎn)移概率矩陣具體如下:
其中:
并且:
設(shè) Markov鏈的極限分布為 Π,以 Π={π0,π1,…,πc}表示{Ln,n≥0}的極限分布,引入:
由文獻[12]中的定理可知,穩(wěn)態(tài)對長概率π0,π1,…,πc滿足遞推關(guān)系平穩(wěn)分布和正規(guī)化條件,可以得到以下關(guān)系式:
其中,k=0,1,…,c-2。
3.3 穩(wěn)態(tài)概率分布的求解算法
由式(3)、式(4)可知,π0,π1,…,πc之間具有線性關(guān)系,假設(shè)πc=1,由πc可以求得πc-1,再由πc和πc-1可以求得πc-2,依次類推,可以一直求得π0。應用正規(guī)化條件π0+π1+…+πc=1可得出模型的穩(wěn)態(tài)概率分布π0,π1,…,πc。具體求解算法的流程如圖3所示。
圖3 穩(wěn)態(tài)概率分布求解算法流程
數(shù)據(jù)庫連接池的性能指標分析具體如下:
(1)請求阻塞概率,即一個數(shù)據(jù)庫連接請求因系統(tǒng)中沒有可用連接而被拒絕的概率,記為pl。請求阻塞概率是衡量一個數(shù)據(jù)庫連接池系統(tǒng)服務(wù)質(zhì)量的重要指標。若請求阻塞概率過高,則應為系統(tǒng)配置更高的最大連接數(shù)。為此,可能需要使用性能更好的數(shù)據(jù)庫管理系統(tǒng)。請求阻塞概率的數(shù)學表達式為:pl=πcc。
(2)系統(tǒng)平均連接數(shù),即在穩(wěn)態(tài)下數(shù)據(jù)庫連接池建立連接數(shù)的均值,記為。系統(tǒng)平均連接數(shù)反映了系統(tǒng)運行穩(wěn)定后系統(tǒng)的實際并發(fā)用戶數(shù),它為數(shù)據(jù)庫連接池技術(shù)配置參數(shù)提供了重要理論依據(jù),其數(shù)學表達式為:。
(3)系統(tǒng)利用率,即連接用戶數(shù)與連接池可建立的最大連接數(shù)c的比,記為η。系統(tǒng)利用率的高低直接關(guān)系系統(tǒng)資源的使用情況,分析系統(tǒng)利用率的影響因素,對數(shù)據(jù)庫連接池技術(shù)的參數(shù)配置有著重要參考意義,其數(shù)學表達式為:。
為直觀地展示數(shù)據(jù)庫連接池性能指標與系統(tǒng)配置參數(shù)之間的依賴關(guān)系,下文給出了在不同條件下,請求阻塞概率、系統(tǒng)平均連接數(shù)、系統(tǒng)利用率及系統(tǒng)吞吐量隨請求到達率、最大連接數(shù)變化的趨勢。將相關(guān)參數(shù)設(shè)置為:每個時隙連接請求到達的概率p設(shè)為0.1~0.9,每個時隙連接服務(wù)完成的概率μ設(shè)為0.03,最大連接數(shù)c設(shè)為1~32。
圖4是當服務(wù)率設(shè)為0.03,最大連接數(shù)分別設(shè)為4,8,16和32時,請求阻塞概率隨到達率的變化曲線。當服務(wù)率μ和最大連接數(shù)c一定的條件下,請求阻塞概率隨請求到達率p的增大而增大。這是因為伴隨連接請求的增多,服務(wù)臺能夠及時處理的連接請求就減少,相應未能處理的連接數(shù)就增大,進而請求阻塞概率增大;當連接完成的服務(wù)率μ和請求到達率p一定的條件下,請求阻塞概率隨著最大連接數(shù)c的增大而減小。這是因為當最大連接數(shù)增大時,單位時間內(nèi)能夠完成的連接數(shù)就增多,相應的未能處理的連接數(shù)就減少,即請求阻塞概率就減小。
圖4 請求阻塞概率隨到達率的變化
圖5是當服務(wù)率設(shè)為0.03,請求到達率分別設(shè)為0.2,0.4,0.6和0.8時,請求阻塞概率隨最大連接數(shù)的變化曲線。當服務(wù)率μ和請求到達率p一定的條件下,請求阻塞概率隨最大連接數(shù)c的增大而減小;當服務(wù)率μ和最大連接數(shù)c一定的條件下,請求阻塞概率隨請求到達率p的增大而增大。
圖5 請求阻塞概率隨最大連接數(shù)的變化
圖6是當服務(wù)率設(shè)為0.03,最大連接數(shù)分別設(shè)為4,8,16和32時,系統(tǒng)平均連接數(shù)隨到達率的變化曲線。
圖6 系統(tǒng)平均連接數(shù)隨到達率的變化
當服務(wù)率μ和最大連接數(shù)c一定的條件下,系統(tǒng)平均連接數(shù)隨請求到達率p的增大而增大并趨近于定值c。這是因為伴隨連接請求的增多,單位時間內(nèi)建立服務(wù)的連接就增多,相應的系統(tǒng)平均連接數(shù)就增多,當超過系統(tǒng)負載后,系統(tǒng)平均連接數(shù)固定為c;當服務(wù)率μ和請求到達率p一定的條件下,系統(tǒng)平均連接數(shù)隨最大連接數(shù)c的增大而增多。這是因為伴隨最大連接數(shù)的增大,能夠建立服務(wù)的連接數(shù)就增多,相應的系統(tǒng)平均連接數(shù)就增多。
圖7是當服務(wù)率設(shè)為0.03,顧客到達率分別設(shè)為0.2,0.4,0.6和0.8時,系統(tǒng)平均連接數(shù)隨最大連接數(shù)的變化曲線。當服務(wù)率μ和請求到達率p一定的條件下,系統(tǒng)平均連接數(shù)隨最大連接數(shù)c的增大而增大;當服務(wù)率μ和最大連接數(shù)c一定的條件下,系統(tǒng)平均連接數(shù)隨請求到達率p的增大而增多。
圖7 系統(tǒng)平均連接數(shù)隨最大連接數(shù)的變化
圖8是當請求到達率設(shè)為0.03,最大連接數(shù)分別設(shè)為4,8,16和32時,系統(tǒng)利用率隨到達率的變化曲線。當服務(wù)率μ和最大連接數(shù)c一定的條件下,系統(tǒng)利用率隨請求到達率p的增大而增大并趨近于1。這是因為伴隨連接請求的增多,單位時間內(nèi)建立服務(wù)的連接就增多,相應的系統(tǒng)利用率就增大,直到系統(tǒng)滿負載運行;當服務(wù)率μ和請求到達率p一定的條件下,系統(tǒng)利用率隨最大連接數(shù)c的增大而降低。這是因為伴隨最大連接數(shù)的增大,單位時間內(nèi)能夠完成的連接數(shù)增多,相應空閑連接就增多,即系統(tǒng)利用率降低。
圖8 系統(tǒng)利用率隨到達率的變化
圖9是當服務(wù)率設(shè)為0.03,請求到達率分別設(shè)為0.2,0.4,0.6和0.8時,系統(tǒng)利用率隨最大連接數(shù)的變化曲線。當服務(wù)率μ和請求到達率p一定的條件下,系統(tǒng)利用率隨最大連接數(shù)c的增大而降低;當服務(wù)率μ和最大連接數(shù)c一定的條件下,系統(tǒng)利用率隨請求到達率p的增大而增大。
圖9 系統(tǒng)利用率隨最大連接數(shù)的變化
圖10是當請求到達率設(shè)為0.03,最大連接數(shù)分別設(shè)為4,8,16和32時,系統(tǒng)吞吐量隨到達率的變化曲線。當服務(wù)率μ和最大連接數(shù)c一定的條件下,系統(tǒng)吞吐量隨請求到達率p的增大而增大,并趨近于定值。這是因為伴隨連接請求的增多,單位時間內(nèi)建立服務(wù)的連接就增多,相應的系統(tǒng)吞吐量就增大,直到系統(tǒng)滿負載運行;當服務(wù)率μ和請求到達率p一定的條件下,系統(tǒng)吞吐量隨最大連接數(shù)c的增大而增大。這是因為伴隨最大連接數(shù)的增大,能夠建立服務(wù)的連接數(shù)就增多,相應的系統(tǒng)吞吐量就增大。
圖10 系統(tǒng)吞吐量隨到達率的變化
圖11是當服務(wù)率設(shè)為0.03,請求到達率分別設(shè)為0.2,0.4,0.6和0.8時,系統(tǒng)吞吐量隨最大連接數(shù)的變化曲線。當服務(wù)率μ和請求到達率p一定的條件下,系統(tǒng)吞吐量數(shù)隨最大連接數(shù)c的增大而增大;當服務(wù)率μ和最大連接數(shù)c一定的條件下,系統(tǒng)吞吐量隨請求到達率的增大而增大。
圖11 系統(tǒng)吞吐量隨最大連接數(shù)的變化
本文分析了數(shù)據(jù)庫連接池的工作原理,根據(jù)其工作原理建立了多服務(wù)臺損失制的Geom/Geom/c/ c離散時間排隊模型,完成了模型的理論分析,并導出了請求阻塞概率、系統(tǒng)平均連接數(shù)、系統(tǒng)利用率及系統(tǒng)吞吐量等系統(tǒng)性能指標的表達式,通過實驗討論了請求到達率和最大連接數(shù)對系統(tǒng)性能的影響,該研究成果為數(shù)據(jù)庫連接池技術(shù)的參數(shù)配置提供了理論依據(jù)。下一步工作是為模型增加排隊場所等條件約束,對數(shù)據(jù)庫連接池進行更精確的性能分析與評價。
[1] 王宇杰,王 鋒,楊文賓.基于數(shù)據(jù)庫連接池的數(shù)據(jù)庫訪問性能對比測試研究[J].工業(yè)控制計算機, 2010,23(6):92-94.
[2] 李秉璋,吳訪升,景征駿,等.NVMS中的自適應數(shù)據(jù)庫連接池技術(shù)[J].計算機工程,2008,34(23):41-43.
[3] 朱長生,沈云付.自適應數(shù)據(jù)庫連接池的研究[J].計算機工程與應用,2003,39(36):187-189.
[4] 梁清翰,沈占鋒,駱劍承,等.構(gòu)建LBS系統(tǒng)的數(shù)據(jù)庫連接池技術(shù)研究[J].計算機工程,2006,32(12): 39-41.
[5] 孟培超,胡圣波,舒 恒,等.基于ADO數(shù)據(jù)庫連接池優(yōu)化策略[J].計算機工程與設(shè)計,2013,34(5): 1706-1710.
[6] 曾國林,傅秀芬.一種新的數(shù)據(jù)庫連接池模型的研究[J].計算機與數(shù)字工程,2011,39(2):163-166.
[7] 呂健波,戴冠中,慕德俊.絕對延遲保證在Web應用服務(wù)器數(shù)據(jù)庫連接池中的實現(xiàn)[J].計算機應用研究, 2012,29(5):1838-1841.
[8] Lu Jianbo,Dai Guanzhong,Mu Dejun.Solutions for Supporting Qos in Database in Web Application servers [J].International Journal of Digital Content Technology and Its Applications,2012,6(11):213-222.
[9] Liu Fei.A Method of Design and Optimization of Database Connection Pool[C]//Proc.ofthe 4th International Conference on Intelligent Human-Machine Systems and Cybernetics.Washington D.C.,USA:IEEE Computer Society,2012:272-274.
[10] Takagi H.Queuing Analysis,Vol.3:Discrete-time systems[M].Amsterdam,Holland:[s.n.],1993.
[11] Tian Naishuo,Zhang Z G.Vacation Queuing Models: Theory and Applications[M].[S.l.]:Springer-Verlag,2011.
[12] 田乃碩,徐秀麗,馬占友.離散時間排隊論[M].北京:科學出版社,2008.
[13] 田乃碩,劉洺辛,馬占友,等.Erlang消失系統(tǒng)的離散時間建模分析[J].系統(tǒng)工程與電子技術(shù),2006,26 (6):823-828.
編輯 陸燕菲
Mathematical Modeling and Performance Analysis of Database Connection Pool
HUO Zhan-qiang,ZHANG Jin-cheng,WANG Zhi-heng
(School of Computer Science and Technology,Henan Polytechnic University,Jiaozuo 454000,China)
In order to configure the system parameters of database connection pool effectively,a Geom/Geom/c/c discrete-time queuing model with multi-server is built according to the operation mechanism of its manage process and the thought of discrete-time queuing theory.It uses the embedded Markov chain method,and the matrix of transition probability and matching recursive relations of the stationary queue length are given.The mathematical expressions of system performance measures are derived by the theoretical analysis results of the model,such as request blocking probability,average number of connections,system utilization,and system throughput,etc.Experiments are intuitively given to prove the dependencies between database connection pool performance index and system configuration parameters.
database connection pool;performance analysis;mathematical modeling;discrete-time queueing theory; Geom/Geom/c/c model;multi-server
1000-3428(2014)10-0032-05
A
TP302
10.3969/j.issn.1000-3428.2014.10.007
國家科技部創(chuàng)新方法工作專項基金資助項目(2011IM010300)。
霍占強(1979-),男,副教授、博士,主研方向:網(wǎng)絡(luò)性能分析,數(shù)據(jù)庫技術(shù);張錦程,碩士研究生;王志衡(通訊作者),副教授、博士。
2013-11-08
2013-12-06E-mail:wzhenry@eyou.com
中文引用格式:霍占強,張錦程,王志衡.數(shù)據(jù)庫連接池的數(shù)學建模與性能分析[J].計算機工程,2014,40(10):32-36.
英文引用格式:Huo Zhanqiang,Zhang Jincheng,Wang Zhiheng.Mathematical Modeling and Performance Analysis of Database Connection Pool[J].Computer Engineering,2014,40(10):32-36.