在昨天的博文中,我們堅持認(rèn)為數(shù)據(jù)庫連接數(shù)過萬是阿里云RDS的問題,但后來阿里云提供了當(dāng)時的數(shù)據(jù)庫連接情況,讓我們動搖了自己的想法。
帳戶 | 連接數(shù) |
A | 4077 |
B | 3995 |
C | 741 |
D | 698 |
E | 519 |
上面這5個帳戶產(chǎn)生了10030個數(shù)據(jù)庫連接,當(dāng)看前4個帳戶(產(chǎn)生了9511個連接)的名稱時,我們打了一個寒顫 —— 這些都是運(yùn)行 Linux 上的 ASP.NET Core 站點。。。這不是巧合,其中必有蹊蹺。
隨后,我們觀察了主備庫切換后的 RDS 中數(shù)據(jù)庫連接情況。有一個運(yùn)行在 Linux 上的 ASP.NET Core 站點,用了3臺服務(wù)器,卻產(chǎn)生了1528個數(shù)據(jù)庫連接。
SELECT * FROM sys.sysprocesses WHERE loginame='xxx'
重啟其中1臺服務(wù)器上的站點,連接數(shù)立馬從1528降到了391。什么情況?數(shù)據(jù)庫連接池發(fā)飆了?
繼續(xù)觀察,當(dāng)前數(shù)據(jù)庫中大量的連接都是由運(yùn)行在 Linux 上的 ASP.NET Core 站點產(chǎn)生的,而且會隨著時間的推移保持增長。
數(shù)據(jù)庫連接泄漏了,這還是第1次遇到!可我們在 APS.NET Core 應(yīng)