amazon-web-services - 使用 Aws-RDS,只有 2 个应用程序用户获得过多的数据库连接?
问题描述
使用 Amazon-RDS,中型实例 (db.t2.medium) 的最大连接数限制为 400 左右,即使只有 2 个用户在使用该应用程序,它仍能获得几乎完整的数据库连接,仅与移动 api 一起使用 (android)不从其他任何地方拨打电话。可能是什么问题,所有这些连接来自哪里?入侵防御系统?可以 ddos 导致这种情况,但我们购买了全新的服务器
解决方案
完成连接后,您可能不会关闭连接。
以 root 用户身份登录数据库并执行以下查询:
select HOST, COMMAND, count(*) from INFORMATION_SCHEMA.PROCESSLIST group by 1, 2;
它将为您提供如下所示的输出:
+-----------+---------+----------+
| HOST | COMMAND | count(*) |
+-----------+---------+----------+
| localhost | Query | 1 |
| localhost | Sleep | 1 |
+-----------+---------+----------+
如果您有两个具有稳定 IP 地址的用户,您可能会看到四行输出:每个用户两个,对于Sleep
. 这表明您正在打开连接。
但是,如果您在移动设备上运行,IP 地址可能不稳定。您需要进行第二级分析,以查看它们是否都来自同一个 ISP。
DDOS 填满您的连接池的唯一方法是您泄露了数据库密码。如果是这种情况,您应该考虑您的数据库已损坏并重新开始(更加注意安全性)。
推荐阅读
- javascript - Swiper.js Carousel 如何用鼠标中键同时控制多个轮播
- python - 为什么 Scrapy CrawlerProcess 将控制权交给它之前的行,导致它和上一行运行 2-3 次?
- javascript - 在 MVC 应用程序中使用相同的 js 文件提供两个不同的功能(请不要使用 **Jquery** 解决方案)
- r - 将表中的列变量从数字年份转换为日期年份 (01-01-2021)
- vue.js - Vue3 在服务器上获取触发 CORS 策略,但在使用 PHP CURL 或 ReqBin 时不会
- java - 从 JSON 数组中获取子键和值:Java
- firebase - 当我从控制台向文档添加字段时,Flutter Firestore 没有提供更新的数据
- python - 如何使用 for 循环检查数字是否为素数?(Python)
- reactjs - Rollup:输出有很多随机文件,如何防止它们生成?
- html - 如何修复 HTML 中的按钮位置?