在昨天的博文中,我们坚持认为数据库连接数过万是阿里云RDS的问题,但后来阿里云提供了当时的数据库连接情况,让我们动摇了自己的想法。
帐户 | 连接数 |
A | 4077 |
B | 3995 |
C | 741 |
D | 698 |
E | 519 |
上面这5个帐户产生了10030个数据库连接,当看前4个帐户(产生了9511个连接)的名称时,我们打了一个寒颤 —— 这些都是运行 Linux 上的 ASP.NET Core 站点。。。这不是巧合,其中必有蹊跷。
随后,我们观察了主备库切换后的 RDS 中数据库连接情况。有一个运行在 Linux 上的 ASP.NET Core 站点,用了3台服务器,却产生了1528个数据库连接。
SELECT * FROM sys.sysprocesses WHERE loginame='xxx'
重启其中1台服务器上的站点,连接数立马从1528降到了391。什么情况?数据库连接池发飙了?
继续观察,当前数据库中大量的连接都是由运行在 Linux 上的 ASP.NET Core 站点产生的,而且会随着时间的推移保持增长。
数据库连接泄漏了,这还是第1次遇到!可我们在 APS.NET Core 应