Postgresql 从t2.xlarge检测到零星AWS RDS postgres连接超时和EOF
我正在AWS RDS上运行一个Postgresql 从t2.xlarge检测到零星AWS RDS postgres连接超时和EOF,postgresql,amazon-web-services,sqlalchemy,tornado,Postgresql,Amazon Web Services,Sqlalchemy,Tornado,我正在AWS RDS上运行一个db.m5.xlargepostgres 10.6db。2周前,我们开始收到零星的(psycopg2.DatabaseError)SSL系统调用错误:连接超时和(psycopg2.OperationalError)SSL系统调用错误:检测到EOF 这些错误都来自运行在t2.xlarge实例上的Docker容器。t2.xlarge运行20个Docker容器,每个容器运行一个简单的Python Tornado API 当我们遇到这些错误时,并不是主机上的所有容器都会出现
db.m5.xlarge
postgres 10.6db。2周前,我们开始收到零星的(psycopg2.DatabaseError)SSL系统调用错误:连接超时和(psycopg2.OperationalError)SSL系统调用错误:检测到EOF
这些错误都来自运行在t2.xlarge
实例上的Docker容器。t2.xlarge
运行20个Docker容器,每个容器运行一个简单的Python Tornado API
当我们遇到这些错误时,并不是主机上的所有容器都会出现错误,而是随机出现的。错误发生后,我们回滚会话(我们使用的是sqlalchemy),错误就会消失
我们已经尝试升级数据库,在t2.xlarge
上运行更少的容器,升级到m5.xlarge
,但没有任何效果
我们的数据库负载看起来正常
我们已经尝试了很多东西,但都没有主意了。这可能与AWS限制我们的t2.xlarge
或m5.xlarge
网络使用有关吗
t2.xlarge
具有~200-250K网络输入/输出,以及~500-600数据包输入/输出。这些实例上的CPU使用率约为0.3
编辑
postgres错误日志显示了大量这样的日志
unexpected EOF on client connection with an open transaction
could not receive data from client: Connection reset by peer
因此,这似乎与我们正在运行的Tornado服务器有关,该服务器使用sqlalchemy与db进行对话。如果您有任何关于使用sqlalchemy/tornado在这里查找/调试内容的提示/建议,我们将不胜感激 您可以使用psql
CLI连接到数据库吗?是的--tornado API与数据库通信没有问题,然后我们偶尔会看到这些错误,几分钟后,连接重新开始工作,就像出现了一些意外异常,导致tornado服务器崩溃,与db的连接无法正常关闭。至少,根据这一点:。打开tornado日志以了解更多关于客户端错误的信息。Amazon的t
-系列实例如果不处于“无限”模式,就会受到一些相当严重的CPU限制;我见过这样的暂停。一般来说,如果CPU利用率在24小时内平均超过25%,您可能会遇到问题。我想这更可能是你的问题,而不是网络。我刚刚检查了一下,我们过去24小时的平均CPU使用率平均在3-4%左右。我们还看到从同一个实例到SQS的推送速度非常慢(偶尔),这让我觉得这可能与网络有关?你能使用psql
CLI连接到数据库吗?是的--tornado API与数据库通信没有问题,然后偶尔我们会看到这些错误,几分钟后,连接重新开始工作,就像出现了一些意外异常,导致tornado服务器崩溃,与db的连接无法正常关闭。至少,根据这一点:。打开tornado日志以了解更多关于客户端错误的信息。Amazon的t
-系列实例如果不处于“无限”模式,就会受到一些相当严重的CPU限制;我见过这样的暂停。一般来说,如果CPU利用率在24小时内平均超过25%,您可能会遇到问题。我想这更可能是你的问题,而不是网络。我刚刚检查了一下,我们过去24小时的平均CPU使用率平均在3-4%左右。我们还看到从相同的实例到SQS的推送速度非常慢(偶尔),这让我觉得它一定是与网络相关的?