連接數對db系統的影響


author:skate
time:2012/02/17

環境說明:
A.應用和db之間沒有中間層,每台應用jboss服務器單獨連接數據庫
B.環境為oracle+linux+jboss+apache


連接數對db系統的影響

對於任何一個系統,他都不是一個封閉系統,如果對連接數不加以限制,當系統出現問題,如響應變慢等,
外部請求不斷涌入系統中,使系統內部產生大量阻塞並不斷惡化,使系統大部分在做阻塞請求的調度。
我們應該選擇一個臨界點,把連接請求控制一個范圍,當系統響應變慢時,系統不再接受新的請求,
系統自身可以處理已有問題(或給人為處理留有時間),然后再接受新的請求。


從app,db兩個層次來限制連接數請求,不僅在應用層限制,在db層也要限制連接請求

1. app層:
在應用層控制連接請求數量,如連接數過多,使其在應用層(jboss)排隊,避免大量連接請
求打到db系統上,因為db系統在拒絕大量的連接請求也是非常耗資源的。

我們的jboss配置:
A:被阻塞的連接請求如果30s還沒得到請求,會拋出錯誤,
B:一個連接空閑2分鍾,jboss會關閉這個連接

說明:“jboss的連接請求有阻塞時很影響jboss的處理能力的,持有的數據庫連接也不釋放”,
如果再加上數據庫響應也變慢,那整體將會更加惡化。


jboss連接池的最重要的作用就是可以節省建立連接所有需要的時間和資源

最小連接數:是根據這台jboss的正常並發連接來設置的,如果其設置的過大,不僅會大量占用db的資源;
            也為添加app服務器帶來瓶頸,比如db的最大連接數100,每台應用的“最小連接數”都設置20,
            那么有5太應用就占滿db的session,在添加新的app服務器,就會報數據庫連接不夠的錯誤。
            可以通過觀察應用jboss的使用情況來設置。

最大連接數:是根據這台jboss正常最大並發連接數來設置的,不宜過大,如果其太大,就沒有限制的作
            用了。根據監控統計數據,作為調整這個參數的依據。


2.db層:
db的session過多導致大量的session進程大量占用pga的空間,使pga的空間緊張,而sort_area_size、
hash_area_size是在pga中,使其供sql使用的空間就變小(使用tempfile,性能低下),sql處理速度就下降,
響應時間就變長,系統就會產生阻塞,如果這個時候,還有大量的session涌入db中,那就使db阻塞更加
嚴重,系統還需更多資源來完成大量阻塞進程的調度,本來系統可以自身可以修復這性能降低的問題,
然后因為大量新的session涌入,使其成為不可能。把數據庫的連接數限制在數據庫可以出問題機率

最小的范圍內。db層限制連接數可以最大化的保證數據庫的穩定性。




---end----



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com