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
主站蜘蛛池模板: 亚洲日本中文字幕乱码中文| 精品人妻无码中字系列| 亚洲色图欧美视频| 久久综合丝袜长腿丝袜| 97成人在线视频| 国产亚洲高清视频| 欧美日韩中文国产va另类| 大学生久久香蕉国产线观看| 亚洲香蕉伊综合在人在线| 亚洲国内精品自在自线官| www.精品国产| 91色在线观看| 91在线精品麻豆欧美在线| 亚洲精品成人片在线观看 | www.亚洲色图.com| 毛片在线区| 国产91精品最新在线播放| 中文国产成人精品久久| 国产成人凹凸视频在线| 国产91麻豆免费观看| 亚洲视频免| 色视频久久| 99热国产在线精品99| 91在线国内在线播放老师| 美女亚洲一区| 天天色天天综合| 亚洲性影院| 又大又硬又爽免费视频| 精品视频一区二区观看| 婷婷综合色| 国产综合在线观看视频| 久久综合亚洲色一区二区三区| 欧美日韩国产成人高清视频| 国产成人一二三| 久久国产精品77777| 丁香五月激情图片| 无码aaa视频| 亚洲人成网站色7799在线播放| 亚洲国产综合第一精品小说| 色婷婷综合激情视频免费看| 青青草a国产免费观看| 国产美女一级毛片| 香蕉蕉亚亚洲aav综合| 午夜性刺激在线观看免费| 国产一区二区三区精品久久呦| 99久久这里只精品麻豆| 国产农村1级毛片| a亚洲视频| 天堂av高清一区二区三区| 国产91丝袜| 国产福利一区二区在线观看| 欧美一级在线看| 久久综合九九亚洲一区| 午夜精品久久久久久久无码软件 | 国产一级裸网站| 国产区91| 亚洲色图欧美一区| 欧美日韩亚洲综合在线观看| 老汉色老汉首页a亚洲| 免费av一区二区三区在线| 国产精品污污在线观看网站| 亚洲一级无毛片无码在线免费视频| 国产情精品嫩草影院88av| 日韩高清一区 | 国产杨幂丝袜av在线播放| 国产欧美日本在线观看| 国产高清不卡| 麻豆精品视频在线原创| 人妖无码第一页| 国产欧美中文字幕| 亚国产欧美在线人成| 色综合久久综合网| 无码内射在线| 国产网站在线看| 日本道中文字幕久久一区| 欧美日韩福利| 久久久久久国产精品mv| 婷婷色狠狠干| 精品国产免费观看| 在线观看免费人成视频色快速| 成人亚洲国产| 福利视频一区|