我在AWS上购买了一个VPC,并在那里创建了6个MySql数据库,并在前面创建了一个读取副本,这样我就可以随时在读取副本上运行查询。
大部分时间,我编写的实例(原始实例)都是完全加载的,它们的CPU百分比大多为99%。然而,读取副本显示了7-10%的CPU使用率,但有时当我运行连接到读取副本“太多连接”的服务时会出错。
我不是AWS方面的专家,但是这种情况发生是因为写入副本是完全加载的,而且它们在同一个VPC上吗?
发布于 2017-04-02 16:51:43
之所以会发生这种情况,是因为写入副本是完全加载的,并且它们在同一个VPC上?
不,不是。这和复制无关。在复制中,副本在主复制上完全算作1连接,但复制不消耗副本本身上的任何连接。与复制的总工作负载强度相关的连接不会受到影响。
这个问题仅仅意味着您有更多的客户端连接到副本,而不是基于RDS实例类型的参数组所允许的。使用查询SELECT @@MAX_CONNECTIONS;查看这个限制是什么。使用SHOW STATUS LIKE 'THREADS_CONNECTED';查看当前存在多少连接,并使用SHOW PROCESSLIST; (作为管理用户,或任何拥有PROCESS权限的用户)来查看所有这些连接正在做什么。
如果它们中的许多显示Sleep,并且在Time中具有长值(在当前状态下的秒数),那么问题是您的应用程序在某种程度上放弃了连接,而不是在使用后或在其他情况下不再需要它们时正确地关闭它们。
https://stackoverflow.com/questions/43169046
复制相似问题