在昨天的博文中,我們堅(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ù) |
A | 4077 |
B | 3995 |
C | 741 |
D | 698 |
E | 519 |
上面這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)