0

我在 AWS 上购买了一个 VPC,并在那里启动了 6 个 MySql 数据库,并且我为每个数据库创建了一个只读副本,这样我就可以始终快速地对只读副本运行查询。

一天中的大部分时间,我的写作实例(原始实例)都是满载的,它们的 CPU 百分比大多是 99%。但是,读取副本显示大约 7-10% 的 CPU 使用率,但有时我在运行连接到读取副本“TOO MANY CONNECTIONS”的服务时收到错误。

我不是 AWS 方面的专家,但发生这种情况是因为写入副本已完全加载并且它们位于同一个 VPC 上吗?

4

1 回答 1

1

发生这种情况是因为写入副本已完全加载并且它们在同一个 VPC 上?

不,不是。这与复制无关。在复制中,副本仅计为主服务器上的 1 个连接,但复制不会消耗副本本身上的任何连接。复制对与总工作负载强度相关的连接没有影响。

此问题仅表示您连接到副本的客户端数量超过了基于您的 RDS 实例类型的参数组所允许的数量。使用查询SELECT @@MAX_CONNECTIONS;查看此限制是多少。用于SHOW STATUS LIKE 'THREADS_CONNECTED';查看当前存在多少连接,并使用SHOW PROCESSLIST;(作为管理用户或任何拥有PROCESS特权的用户)查看所有这些连接在做什么。

如果它们中的许多Sleep在(当前状态下花费的秒数)中显示并具有长值,Time那么问题是您的应用程序以某种方式放弃了连接,而不是在使用后或不再需要它们时正确关闭它们。

于 2017-04-02T16:51:43.753 回答