1. 程式人生 > >[總結]資料庫連線池設定不當導致大量的本地連接出現time_wait狀態。

[總結]資料庫連線池設定不當導致大量的本地連接出現time_wait狀態。

最近在做效能測試時,在使用netstat命令檢視本地網路連線狀態時發現有大量的連線處於time_wait狀態。

於是認為是我們的dbcp的配置檔案寫的有問題,開始查應如何配置dbcp。但是改了幾個引數後,發現還是出現大量的time_wait。

於是又開始檢視官方的配置說明,還是我們老大認真犀利,發現了這段:
If maxIdle is set too low on heavily loaded systems it is possible you will see connections being closed and almost immediately new connections being opened. This is a result of the active threads momentarily closing connections faster than they are opening them, causing the number of idle connections to rise above maxIdle. The best value for maxIdle for heavily loaded system will vary but the default is a good starting point.

這段之前我也發現了,可是卻因為沒仔細閱讀想當然的認為了是另一個問題的說明。主要意思就是在負載壓力較大的系統中maxIdle的值不能太低,否則就會在短時間內出現關閉連線的速度大於開啟連線的速度的現象,就會出現大量空閒連線。所以,當出現的空閒連線數大於maxIdle時,連線池就會將多出的連線關閉,系統中也就會有大量的連線處於time_wait狀態了。
根據此說明,我們將maxIdle的數量修改為和maxTotal的值相同,再做效能壓力測試,系統中不再出現大量的time_wait連線了。

相關推薦

[總結]資料庫連線設定不當導致大量本地出現time_wait狀態

最近在做效能測試時,在使用netstat命令檢視本地網路連線狀態時發現有大量的連線處於time_wait狀態。 於是認為是我們的dbcp的配置檔案寫的有問題,開始查應如何配置dbcp。但是改了幾個引數後,發現還是出現大量的time_wait。 於是又開始檢視

服務器性能調優(netstat監控大量ESTABLISHEDTime_Wait問題)

r報錯 nginx vim 個數字 syn攻擊 並發 tco dir XML netstat監控大量ESTABLISHED連接與Time_Wait連接問題 問題描述: 在不考慮系統負載、CPU、內存等情況下,netstat監控大量ESTABLISHED連接與Tim

Nginx反向代理與後端服務采用參數分析,長減少TIME_WAIT

數據 模型 業務需求 技術 nginx服務器 程序 創建 反向代理 還需 前面已經講過,在使用locust直連後端服務器時,可以通過設置HTTP頭部為keep-alive,並在客戶端斷開連接,減少服務器的連接壓力。因為由客戶端斷開連接,客戶端的連接會變為TIME_WAIT狀

Java個人總結——JDBC資料庫連線(二)

三種常見的資料庫連線池 一、DBCP連線池 DBCP(DataBase connection pool),[資料庫連線池]。是 apache 上的一個 java 連線池專案,也是 tomcat 使用的連線池元件。單獨使用dbcp需要2個包:commons-dbcp.

kylin調優,專案中錯誤總結,知識點總結,kylin jdbc driver + 資料庫連線druid + Mybatis專案中的整合,shell指令碼執行kylin restapi 案例

關於本篇文章的說明: 本篇文章為筆者辛苦勞作用了一整天總結出來的文件,大家閱讀轉發的時候請不要吝嗇寫上筆者:塗作權 和 原文地址。 由於筆者所在環境沒有人用過kylin,筆者也是自學官網,閱讀書籍 將kylin用於實際專案,期間遇到了很多很多關於kylin使用的問題。為了讓後面的人在

c3p0 資料庫連線配置 詳細總結

前言 關於 c3p0 一般有這麼兩種配置,一種是通過 set 方法進行配置,另一種是通過在同 src 目錄下的 c3p0-conflg.xml 檔案或者 c3p0.properties 檔案進行相關的配置。 一、c3p0 通過 set 方法進行配置 原始碼: priva

Spring學習總結(21)——Spring整合阿里巴巴資料庫連線DruidDataSource配置及其常見問題彙總

一、參考配置如下    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-          

Javaweb總結2—自定義JDBC資料庫連線

什麼是資料庫連線池呢? 資料庫連線池簡而言之就是一個容器裡存放一些資料庫連線。 那問題來了,要資料庫連線池有什麼用呢? 哈哈不用急,接下來我們一起慢慢分析分析 我們仔細觀察這個連線池,有沒有解決剛剛開始的疑問呢? 實現連線池先繼承一個DataSourse類,當然也可以選擇不繼承它來寫

故障分析:核心引數設定不當導致資料庫異常重啟

編輯手記:資料庫中每一個不起眼的引數,都有其內部的原理,不可隨意更改。今天分享一則因核心引數SEMOPM設定太小,加上在業務高併發時段LGWR寫入太慢,系統呼叫失敗,最終資料庫異常宕機的案例。 故障現象 資料庫CRASH,在CRASH前,ALERT中顯示如下的日誌內容 我們看到中間有27300和2

資料庫連線失效導致程式異常怎麼辦—-mybatis資料庫連線配置” 資料庫連線失效導致程式異常怎麼辦—-mybatis資料庫連線配置

以mysql為例,資料庫連線預設是8小時,也就是說一個連線8小時未使用,就將被關閉,但是如果你使用了資料庫連線池技術,當連線被關閉之後,程式並不知道這是一個失效的連線,依然進行使用,就會導致程式出錯。怎麼辦呢? 1.修改mysql的預設時間,可以最大改為一年。(但是

maven專案管理器,Junit測試單元以及C3P0資料庫連線的會用總結

最近剛好連續學習了maven專案管理器,Junit測試單元以及C3P0資料庫連線池的使用,現將學習工程中遇到的問題與注意點總結如下: 1.maven專案管理器 maven是一種很好用的專案管理器,在開發工具中建立一個maven專案,它會自動生成各種目錄,有專門存放java

為何要設定資料庫連線的 超時等待時間

先說問題背景:程式有多執行緒呼叫,有大量的資料庫互動 遇到的問題:程式執行一段時間之後hung 住了,沒有異常丟擲,也不繼續執行 因為有多執行緒呼叫,因此無法快速準確的定位問題:是執行緒問題還是其他程式碼邏輯問題 後來發現是資料庫連線的問題:由於有段程式碼資料庫連線

javaweb學習總結(三十九)——資料庫連線

一、應用程式直接獲取資料庫連線的缺點   使用者每次請求都需要向資料庫獲得連結,而資料庫建立連線通常需要消耗相對較大的資源,建立時間也較長。假設網站一天10萬訪問量,資料庫伺服器就需要建立10萬次連線,極大的浪費資料庫的資源,並且極易造成資料庫伺服器記憶體溢位、拓機。如下圖所示:    二、使用資料庫連

資料庫連線介紹、主要引數設定、作用

<bean id="dataSource"               class="org.apache.commons.dbcp.BasicDataSource">               <property name="driverClassName"              

Java jdbc資料庫連線總結!

1. 引言   近年來,隨著Internet/Intranet建網技術的飛速發展和在世界範圍內的迅速普及,計算機   應用程式已從傳統的桌面應用轉到Web應用。基於B/S(Browser/Server)架構的3層開發模式逐漸取代C/S(Client/Server)架構的開發

資料庫連線總結----Proxool

一、為何需要 connection pooling 當我們進入了 Java 的開發世界, pool 也是一門學問, 如何讓 connection 先建立好與 DB 的連結, 後來的人可以使用已經存在於 pool 的 connection, 減少連結的時間, 這麼優秀的功能

設定JDBC資料庫連線

前言     JDBC作為J2EE的規範之一,它定義了連線資料庫的介面,封裝了連線資料庫的細節問題,給開發人員極大的方便。開發人員只需要實現這些介面,就可以連線不同的資料庫,不需要針對不同資料庫寫不

孤傲蒼狼 只為成功找方法,不為失敗找藉口! javaweb學習總結(三十九)——資料庫連線池 一、應用程式直接獲取資料庫連線的缺點   使用者每次請求都需要向資料庫獲得連結,而資料庫建立連線通常需要

一、應用程式直接獲取資料庫連線的缺點   使用者每次請求都需要向資料庫獲得連結,而資料庫建立連線通常需要消耗相對較大的資源,建立時間也較長。假設網站一天10萬訪問量,資料庫伺服器就需要建立10萬次連線,極大的浪費資料庫的資源,並且極易造成資料庫伺服器記憶體溢位、拓機。如下圖所示:    二、使用資料

資料庫連線到底應該設定多大?

開發十年,就只剩下這套架構體系了! >>>   

如何正確設定資料庫連線的大小?我的天,原來之前都設定錯了!

文章翻譯整理自: https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing 歡迎關注個人微信公眾號: 小哈學Java, 文末分享阿里 P8 資深架構師吐血總結的 《Java 核心知識整理&面試.pdf》資源連結!! 個人網站