在昨天的博文中,我們堅(jiān)持認(rèn)為數(shù)據(jù)庫(kù)連接數(shù)過(guò)萬(wàn)是阿里云RDS的問(wèn)題,但后來(lái)阿里云提供了當(dāng)時(shí)的數(shù)據(jù)庫(kù)連接情況,讓我們動(dòng)搖了自己的想法。

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

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

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

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

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

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

數(shù)據(jù)庫(kù)連接泄漏了,這還是第1次遇到!可我們?cè)?APS.NET Core 應(yīng)