天天看點

WebSphere連接配接池參數詳解

應用程式讀取資料庫有2種方式,一種是直接連接配接資料庫,一種是調用連接配接池。

    1)       直連是程式直接建立實體連接配接,調用資料庫進行資料讀取。直連的建立會帶來很大的系統開銷,若程式中多處頻繁使用直連,會造成應用伺服器資源消耗過多,影響程式的性能。

    2)       連接配接池是建立和管理一個實體連接配接的緩沖池,其中會保留一定數量建立的實體連接配接不關閉,當有用戶端請求時,調用連接配接池,可以有效減少實體連接配接的建立次數,降低直連所帶來的系統開銷,緩解應用伺服器壓力,提高程式性能。

    下面我對連接配接池各參數意義進行講解:

    連接配接逾時

    連接配接逾時是指,當對指定連接配接池進行請求時,池中沒有可用連接配接(連接配接全部被使用,或者資料庫請求逾時),當請求時間到達指定之間時未響應,那麽這個時候就會産生逾時異常,通過日志可以發現。

    連接配接逾時的設定,是對我們應用響應速度的一種把關,客戶往往要求我們的産品在多長時間必須有響應,是以連接配接逾時的設定,可以讓我們發現哪些程式點有響應速度問題,可能是資料庫查詢語句問題,也有可能是程式邏輯死循環,再有可能就是資料庫表結構需要優化,還有可能是最大連接配接數到達最大值。

    最大連接配接數

    最大連接配接數是指目前連接配接池中允許建立的最大實體連接配接數,當到達指定值後,将不允許建立實體連接配接。和連接配接逾時相對應,當達到最大值後,連接配接請求将等待,直到池中有空閑連接配接為止,否則報連接配接逾時錯誤。當使用叢集機制時,會同時存在多個相同連接配接池,這個時候需要考慮最大數量的設定。

    最大連接配接數可以有效控制建立實體連接配接的數量,連接配接池的大小影響着伺服器資源的占用情況,若連接配接池過大,則會長期占用伺服器可利用資源,若連接配接池過小,無法滿足現場環境應用高負載使用壓力。最大連接配接數的設定應根據TPV觀測資料進行合理配置。

    最小連接配接數

    最小連接配接數是指目前連接配接池要保留的最小實體連接配接,其決定未使用逾時維護機制的下限,連接配接池的建立不是根據最小連接配接數而特意建立,而是根據使用者請求而建立,系統會一直維護最小的連接配接數目。

    最小連接配接數使應用伺服器保持一定數量的實體連接配接,利用應用伺服器維護機制,合理配置設定伺服器資源。當應用程式通路頻繁,但通路人數少的情況下,最小連接配接數的合理配置,可以将有效的資源進行充分利用,滿足特定應用需求。

    收集時間

    收集時間是連接配接池維護機制的核心,是指每次維護連接配接池的時間間隔。其有兩個維護名額,分别為未使用逾時和時效逾時,其值應該小于兩個名額中的任何一個。每一次維護周期中,連接配接池都會将連接配接池中逾時的實體連接配接關閉,以減少系統占用資源。

    合理的收集時間設定,是幫助我們關閉不必要的連接配接,節省系統資源占用的有效途徑。收集時間設定不易過大,因為時間間隔過長,會使很多未被使用的實體連接配接持續占用資源。若收集時間過小,則頻繁的維護會帶來很多系統開銷,連接配接池的主要精力都放到了維護上。

    未使用的逾時

    未使用的逾時指池中的實體連接配接空閑未使用的時間間隔,每隔指定時間,系統會為連接配接标記,幫助收集時間在維護過程中進行關閉。未使用的逾時應該小于實效逾時時間,并且其以最小連接配接數為标準,當連接配接數超過最小連接配接數時,其才起作用。

    未使用逾時的設定,幫助我們關閉不必要的空閑連接配接,釋放系統資源,并且減少資料庫開銷。根據現場環境使用情況,我們可以根據系統通路頻繁程式,來定制合理的未使用逾時,如果過小,當通路頻繁程度大時,總需要重新建立,如果過大,當通路頻繁程度不大時,連接配接池又空閑占用過多。

    時效逾時

    實效逾時指關閉實體連接配接的時間間隔,這個值是指到達指定的時間後,關閉滿足時間條件的實體連接配接,若這個實體連接配接未使用,則直接關閉,若這個連接配接正在使用,則目前事務結束後,關閉此連接配接。這個值不受最小連接配接數的影響,若沒有新建立的連接配接,此機制會關閉連接配接直到為0。

    時效逾時的設定,是為了方式應用程式或者資料庫造成的資料庫連接配接持續占用,可能導緻的原因包括程式邏輯錯誤,資料庫當機導緻的錯誤等。還有一種情況為人為導緻,就是若某個使用者持續占用一個資源不放,會導緻其他使用者無法通路。是以時效逾時的設定,是對不合理使用應用,或者連結錯誤等進行強行關閉,保證程式的穩定性和持久性。

繼續閱讀