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

大數據背景下動態調整參數的數據庫連接池性能優化研究

2017-02-18 03:11:35趙克全
淮北職業技術學院學報 2017年1期
關鍵詞:數據庫用戶

趙克全

(1.同濟大學 軟件學院,上海 201804;2.亳州學院 教育系,安徽 亳州 236800)

·應用技術研究·

大數據背景下動態調整參數的數據庫連接池性能優化研究

趙克全1,2

(1.同濟大學 軟件學院,上海 201804;2.亳州學院 教育系,安徽 亳州 236800)

大數據時代的數據庫連接池技術應用廣泛。通過對數據庫連接池的用戶請求算法、連接池的改進算法(連接分配策略)、動態調整連接池算法分析比較,發現數據庫連接池原算法存在的問題。通過數據庫連接訪問的壓力測試,提出動態調整數據庫連接池參數的解決方案。

動態調整參數;數據庫連接池;性能優化

大數據時代不光是數據的收集整理重要,高效率使用數據更重要,數據庫連接池技術是當前數據庫廣泛而有效使用的重要方法。

1 數據庫連接池技術

數據庫連接池是用于創建和管理數據庫連接的緩沖池,緩沖池中的連接可以被任何需要他們的線程使用。當一個線程需要用ADO.NET對一個數據庫操作時,將從池中請求一個連接。當這個連接使用完畢后,將返回到連接池中,等待為其他的線程服務。優化數據庫連接池可以通過對數據庫連接資源的管理來實現,優化連接池連接管理方式是常用的方法,它包含數據庫連接的建立、配置、分配策略等。

雖然數據庫連接池技術己經得到了廣泛的使用,其技術也比較成熟,但連接池技術的設計方式還存在一些缺點:連接池的參數配置策略是靜態的。靜態參數配置在參數配置表配置好連接池參數值后,參數不再更新,初始的參數配置基本上決定了連接池的性能,所以需要經過多次的實際測試,確定連接池初始配置參數。不能根據應用需求的變化而適時地調整參數值,有時候訪問用戶很少,但還有大量未被分配而處于空閑狀態的連接,使得服務器的內存和CPU資源被大量浪費。針對這種情況,可以采用動態調整參數的方法來改進連接池。其基本思路是:根據用戶的需求來配置連接池參數,采用基于XML格式的參數配置表;調整連接池時將信息寫入XML格式的日志文件,根據設置的運行日志來動態調整連接池配置參數。該方法的特點:能夠在并發用戶間重用連接,并隨并發壓力動態調整連接池容量,顯著減少資源消耗,提高了資源利用率,很好地克服了靜態配置方法中存在的局限。可以在應用服務器中維護該連接池,并通過它連接數據庫。

2 連接池的相關算法

數據庫連接池主要由兩部分組成:連接池管理和連接管理。連接池管理負責整個連接池的資源管理及調度策略管理,根據日志文件動態調整連接池配置參數,這是連接池技術的核心;連接管理實現連接復用,提高資源利用率,連接復用的思想是對引用次數較少的連接進行復用。其組成結構如圖1所示:

圖1 數據庫連接池的組成結構

2.1 用戶請求算法

用戶請求采用優先級算法:①用戶發出連接請求;②判斷是否有空閑連接,有轉向③,否則轉向④;③獲得連接,寫入日志;④判斷連接池是否滿,是轉向⑥,否則轉向⑤;⑤插入新連接,轉向③;⑥判斷是否有可剝奪且能夠剝奪的連接,如果有轉向⑦,否則轉向⑧;⑦剝奪可用連接,轉向③;⑧調整周期到,調用動態調整算法,否則轉向①。具體流程如圖2所示:

圖2 請求算法流程

2.2 連接池的改進算法(連接分配策略)

連接池的改進算法(連接分配策略):①用戶申請連接,啟動定時器,遍歷每個連接的狀態;②如果連接關閉,轉向③,否則轉向④;③關閉連接,從連接池中刪除;④判斷連接是否空閑,如果空閑轉向⑤,否則轉向⑥;⑤判斷是否大于最大使用時間,如果是轉向③,否則轉向⑦;⑥判斷連接數是否在連接池上下限范圍之內,進行動態調整,轉向調整算法;⑦判斷是否大于最大使用次數,如果大于轉向③,否則轉向①。具體流程如圖3所示:

圖3 改進算法流程

2.3 動態調整連接池算法

動態調整連接池算法:①查看定時器,如果達到調整周期,遍歷連接池,判斷連接數是否位于最大連接數和最小連接數之間,如果位于轉向②,否則轉向③;②連接池不用進行調整;③判斷連接數如果大于maxConn,則對連接池進行擴充處理;連接數小于minConn,對連接池進行收縮處理。具體流程如圖4所示:

圖4 動態調整算法流程

其中,對超出最大使用次數和最長使用時間的連接執行刪除操作的原因是系統每使用一次連接都會占用一定的內存空間,如果一個連接使用次數過多,就使得內存疊加區域被加大了,進而導致系統變慢,直至死機。所以設定使用一定次數,就要釋放該連接。

3 動態調整參數的數據庫連接池優化方法

3.1 連接池的參數配置

連接池首次啟動是根據用戶配置的初始參數來實現的,這些參數可以通過多次實際測試并根據實際項目的需求來確定。利用ADO.NET來構建連接池,通過ADO.NET讀取連接池的XML配置文件,完成驅動程序注冊和連接池初始化。

連接池改進的思想是通過動態調整配置參數來實現的,首先必須配置文件WebConfig. XML的格式如下:

<數據庫連接池>

<屬性>

<連接>

<身份認證><身份認證>

3.2 問題分析

如何保證連接池快速有效運行,滿足不同時段請求的需要,必須對連接池進行動態調整,而調整周期到了,是連接池的調整可能發生的情況。這是連接池調整的例行工作;如果有新用戶請求,而緩存又沒有空余資源供該請求使用,但緩存中有可剝奪連接且其優先級比用戶請求的連接的優先級低。

由于不同時段的訪問量決定了對數據的存取呈曲線變化,如圖5所示。波峰時說明用戶訪問量較大,為了減少資源浪費,這就要求對連接池的容量進行動態放大;而波谷時說明用戶訪問量較小,則有必要對連接池容量進行適當縮小,并回收可用的資源,淘汰那些不再使用或者是最不可能在將來使用的資源。

圖5 訪問量模型

調整的條件(maxConn表示最大連接數;ConnTi表示在時間Ti時的訪問量;minConn表示最小連接數):

當minConnmaxConn時,需要對連接池進行適當的放大處理;用Δc表示連接池容量收縮、放大的幅度,以放大處理為例:如果Δc過大,則會造成系統資源浪費;如果幅度過小,則滿足不了訪問請求,需要頻繁地調整連接池容量。因此,如何合適地確定Δc的值,是動態調整的關鍵。連接池初始參數的確定需要進行實際應用的模擬,進而來選定參數值。本文根據實際項目需求,采用壓力測試工具LoadRunner來進行實際應用的模擬,經過多次測試,得出有關連接數的一系列數值,包括最大連接數、最小連接數等,通過求平均值得出平均最大連接數Avg(maxConn)和平均最小連接數Avg(minConn),作為連接池的初始配置參數,如圖6所示:

圖6 連接數分析

假如Ti時刻為連接數最大峰值ConnTi,可以取:

Δc =ConnTi -Avg(maxConn)

公式(1)

Tj時刻有連接數最小值ConnTj,可以取:

Δc =Avg(minConn)-ConnTj

公式(2)

確定了Δc的取值,即確定了連接池調整的幅度,可以根據實際情況對連接池進行動態調整。

3.3 連接池參數動態調整

最大連接數maxConn和最小連接數minConn的調整:

①對連接池進行放大處理

當用戶訪問量過大時,即當ConnTi >maxConn時,需要對連接池容量進行適當的放大處理,對原有配置參數最大連接數maxConn進行更新,以maxConn +Δc作為調整后的最大連接數,而minConn仍為原來的值。

②對連接池進行縮小處理

當用戶訪問量減少時,即當ConnTi < minConn時,需要對連接池容量進行收縮處理,對原有配置參數最小連接數minConn進行更新,以minConn-Δc作為調整后的最小連接數,而maxConn仍為原來的值。

4 小結

由于連接池的調整是結合應用服務器實現的,所以調整過程中其他線程的操作,都將由應用服務器來實現。服務器注銷所有連接釋放資源時對連接池進行分析,進而對配置參數進行調整。配置文件設置連接ID號,ID號是根據連接申請的先后順序進行配置,而寫日志操作記錄的是連接的起始時間和終止時間,所以可以遍歷連接池中的連接,根據所求連接的終止時間和其余連接的起始時間的關系,求出該連接的并發連接數,進而求出最大并發連接數和最小并發連接數,作為最大連接數和最小連接數寫入配置文件,實現配置參數的更新。

連接池的改進主要是通過寫入日志的形式來實現動態調整,在日志中記錄數據訪問的情況,經過設定的一段時間后日志評價的結果被寫到連接池的配置文件中。連接池根據用戶配置的初始參數實現首次啟動,初始參數是通過實際測試確定下來的,以后每次連接池啟動時,通過裝入上次日志的運行結果來動態調整參數的值,這樣就可以有效避免連接池參數設置的盲目性。

[1] 歐陽宏基,葛萌,趙薔.基于JDBC與設計模式的數據庫連接池實現方法[J].計算機技術與發展,2011(1).

[2] 衣李娜. Java訪問SQL數據庫的優化探討[J]. 計算機光盤軟件與應用, 2012(21).

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

[4] 朱子江,等. 基于ADO.NET 的數據庫連接池技術的優化研究[J] .計算機與現代化,2011(7).

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

責任編輯:木 星

2016-12-05

趙克全(1965—),男,安徽蒙城人,副教授,同濟大學軟件學院軟件工學專業2013級碩士研究生,研究方向:應用軟件研發、應用數學。

TP301.6

A

1671-8275(2017)01-0133-03

猜你喜歡
數據庫用戶
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(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
數據庫
財經(2016年6期)2016-02-24 07:41:51
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
主站蜘蛛池模板: 狠狠亚洲五月天| 国产成人精品在线| 国产精品久久久久久久久kt| 无码中字出轨中文人妻中文中| 国产精品嫩草影院视频| 国产91全国探花系列在线播放| 九九这里只有精品视频| 国产第八页| 色欲色欲久久综合网| 国产女人在线观看| 日本高清在线看免费观看| 免费看美女自慰的网站| 免费黄色国产视频| 欧美成人一区午夜福利在线| 九九免费观看全部免费视频| 日本手机在线视频| 国产亚洲精品无码专| 国产高清自拍视频| 国产精品不卡永久免费| 国产成人精品高清不卡在线 | 2020国产在线视精品在| 午夜视频日本| 亚洲 欧美 偷自乱 图片| 亚洲成人精品久久| 国产欧美视频在线观看| 国产综合色在线视频播放线视| 狠狠综合久久| 欧美视频二区| 国产成人午夜福利免费无码r| 国产成人一区二区| 国产迷奸在线看| 她的性爱视频| 手机在线看片不卡中文字幕| 在线欧美a| 91视频免费观看网站| 国产精品99久久久久久董美香 | 人妻中文久热无码丝袜| 成人午夜福利视频| 97视频在线精品国自产拍| 国内a级毛片| 制服丝袜一区| 91久久国产成人免费观看| 久久精品66| 久久青青草原亚洲av无码| 91美女视频在线| 一级毛片免费高清视频| 毛片在线播放a| 亚洲精品国偷自产在线91正片| 97综合久久| 色婷婷亚洲综合五月| 天堂在线www网亚洲| 国产a v无码专区亚洲av| 看你懂的巨臀中文字幕一区二区| 国产成人91精品| 欧美www在线观看| 亚洲第一成人在线| 91成人在线观看视频| 亚洲最大情网站在线观看| 欧洲熟妇精品视频| 欧美三級片黃色三級片黃色1| 久久天天躁狠狠躁夜夜躁| 女人av社区男人的天堂| 视频一本大道香蕉久在线播放 | 国产精品hd在线播放| 狠狠色成人综合首页| 国产精品吹潮在线观看中文| 国产亚洲视频播放9000| 久热re国产手机在线观看| 被公侵犯人妻少妇一区二区三区| 日韩小视频在线观看| 欧美笫一页| 九九热精品免费视频| 亚洲综合极品香蕉久久网| 久久综合伊人77777| 国产三级韩国三级理| 成人亚洲国产| 无码专区国产精品一区| 国产精品久久久精品三级| 国产精品人莉莉成在线播放| 97久久免费视频| 亚洲黄色网站视频| 伊人AV天堂|