在配置tomcat資料庫連線池時候,對配置的具體數值總是懵逼。這裡給出具體建議。
首先上公式:
資料庫連線池連線數 = ((核心數 * 2) + 有效磁碟數)
核心數如何得到?
linux 檢視物理cpu的個數
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
檢視每個物理cpu中core的個數(即核數)
cat /proc/cpuinfo| grep "cpu cores"| uniq
兩數相乘即得到核心數。
有效磁碟數一般是乙個。這樣得到的資料庫連線池個數是不是和自己猜想的小的很多?
下面進行理解一下。
單核 cpu同一時刻只能執行乙個執行緒,然後作業系統切換上下文,cpu 核心快速排程,執行另乙個執行緒的**,不停反覆,給我們造成了所有程序同時執行假象,其實這時候上下文切換的效能損耗很大。
其實,在一核 cpu 的機器上,順序執行a和b永遠比通過時間分片切換「同時」執行a和b要快,因為一旦執行緒的數量超過了 cpu 核心的數量,再增加執行緒數系統就只會更慢,而不是更快,因為這裡上下文切換會耗費額外的效能。
ok,以後再遇到連線數的配置,切不可想著越大越好。
Tomcat資料庫連線池配置
tomcat資料庫連線池配置 1.server.xml的配置 1 找到tomcat所在目錄下的conf server.xml檔案 2 在檔案最後乙個前加入如下 name jdbc connectdb auth container type j ax.sql.datasource maxactive ...
資料庫連線池 Redis連線池
基本原理 在內部物件池中,維護一定數量的資料庫連線,並對外暴露資料庫連線的獲取和返回方法。如外部使用者可通過getconnection方法獲取資料庫連線,使用完畢後再通過releaseconnection方法將連線返回,注意此時的連線並沒有關閉,而是由連線池管理器 並為下一次使用做好準備。2.作用 ...
如何設定tomcat資料庫連線池
1 如何設定tomcat資料庫連線池 最近在網上,有很多朋友並不了解什麼叫做資料庫連線池,怎麼配置連線池也不清楚。於是為了方便大家,我特此寫這份文件。以tomcat為例子 如果tomcat版本為4.x版本 1 設定oracle連線池 tomcat4.x 在設定oracle連線池之前,要保證在 tom...