在昨天的博文中,我們堅持認為數(shù)據(jù)庫連接數(shù)過萬是阿里云RDS的問題,但后來阿里云提供了當時的數(shù)據(jù)庫連接情況,讓我們動搖了自己的想法。

帳戶連接數(shù)
A4077
B3995
C741
D698
E519

上面這5個帳戶產(chǎn)生了10030個數(shù)據(jù)庫連接,當看前4個帳戶(產(chǎn)生了9511個連接)的名稱時,我們打了一個寒顫 —— 這些都是運行 Linux 上的 ASP.NET Core 站點。。。這不是巧合,其中必有蹊蹺。

隨后,我們觀察了主備庫切換后的 RDS 中數(shù)據(jù)庫連接情況。有一個運行在 Linux 上的 ASP.NET Core 站點,用了3臺服務器,卻產(chǎn)生了1528個數(shù)據(jù)庫連接。

SELECT * FROM sys.sysprocesses 
WHERE loginame='xxx'

重啟其中1臺服務器上的站點,連接數(shù)立馬從1528降到了391。什么情況?數(shù)據(jù)庫連接池發(fā)飆了?

繼續(xù)觀察,當前數(shù)據(jù)庫中大量的連接都是由運行在 Linux 上的 ASP.NET Core 站點產(chǎn)生的,而且會隨著時間的推移保持增長。

數(shù)據(jù)庫連接泄漏了,這還是第1次遇到!可我們在 APS.NET Core 應