负载测试 SQL Alchemy:“TimeoutError:达到 QueuePool 大小限制 3 溢出 0,连接超时,超时 30”

2024-05-05

我有一个在 AWS 中运行的基于 SQL-Alchemy 的 Web 应用程序。

该网络应用程序有几个c3.2xlargeELB 后面的 EC2 实例(每个 8 个 CPU)接收 Web 请求,然后查询/写入共享数据库。

我使用的数据库是 RDS 实例类型:db.m4.4xlarge。 它正在运行 MariaDB 10.0.17

My SQL Alchemy 设置如下:

SQLALCHEMY_POOL_SIZE = 3
SQLALCHEMY_MAX_OVERFLOW = 0

在重负载下,我的应用程序开始抛出以下错误:

TimeoutError: QueuePool limit of size 3 overflow 0 reached, connection timed out, timeout 30

当我将 SQLALCHEMY_POOL_SIZE 从 3 增加到 20 时,相同负载测试的错误就会消失。这是我的问题:

  1. 我的数据库总共可以处理多少个并发连接?
  2. 假设这样公平吗?Number of Number of EC2 instances * Number of Cores Per instance * SQLALCHEMY_POOL_SIZE可以达到但不能超过问题#1 的答案?
  3. 我是否需要了解有关数据库连接池的任何其他约束 像我这样的分布式网络应用程序的大小?

MySQL 几乎可以处理任意数量的“同时”连接。但如果超过几十个actively运行查询,有may有麻烦了。

如果不知道您的查询在做什么,就无法判断 3 是限制还是 300。

我建议您打开慢日志来收集有关哪些查询是“霸占”的信息。一个经过精心调优的 Web 应用程序可以在 3 个连接上轻松存活 99%。

另外 1%——嗯,可能会出现峰值。因此,3 是不合理的低。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

负载测试 SQL Alchemy:“TimeoutError:达到 QueuePool 大小限制 3 溢出 0,连接超时,超时 30” 的相关文章

  • 我可以指定默认的 AWS 配置文件吗?

    在我的开发环境中 我经常在多个 AWS 访问密钥之间切换 所以在我的 aws credentials文件 我有几个配置文件 然后 我可以通过指定以下内容将这些配置文件与 aws cli 一起使用 profile
  • 当操作系统为 Windows Server 2019 时,ec2 私有子网无法到达 169.254.169.254

    我有多个 ec2 实例在私有子网中运行 仅允许 vpc 内的流量 其中一些实例是自定义操作系统 其中一些实例运行 AWS windows server 2012 ami 有些运行 AWS Windows Server 2019 ami 在所
  • AWS Import-image 用户无权访问 S3 对象

    运行 AWS Amazon Web Services 导入映像任务时 aws ec2 import image description My OVA disk containers file c TEMP containers json 我
  • 尝试安装 AWS CLI,卡在一个步骤上

    我正在尝试为 mac 命令行安装 aws 我想我不明白我需要做什么 我在终端上安装了带有 wget 的 aws 捆绑包 解压后它完成了所有操作 但是当我需要配置我的凭据时 什么也没有出现把aws配置 以下是说明 http docs aws
  • ECS任务定义中容器之间的通信

    我在 ECS 中运行了一个任务定义awsvpc模式 包含 2 个 docker 容器 我的问题是如何在任务定义中的容器之间进行通信 它们的行为与 docker compose 类似吗 awsvpc 网络模式下的任务中的多个容器将共享任务 E
  • Flask-SQLAlchemy - 类型错误:__init__() 仅占 1 个位置

    我只想用flask sqlalchemy 创建和测试数据库 数据库创建尚未成功 我的代码 class Entry db Model id db Column db Integer primary key True occurences db
  • 适用于 AWS 区域的 Cassandra Ec2MultiRegionSnitch 或 GossipingPropertyFileSnitch

    我们在美国 AWS 区域有 3 个 Cassandra 节点 在新加坡 AWS 区域有 3 个节点 如果我必须构建多数据中心 我们是否必须使用 Ec2MultiRegionSnitch 或者我们可以使用 GossipingPropertyF
  • 具有行为路径重定向的多个 Cloudfront 起源

    我有两个 S3 存储桶用作我的 Cloudfront 源服务器 example bucket 1 example bucket 2 两个存储桶的内容都位于这些存储桶的根中 我正在尝试将我的 Cloudfront 发行版配置为基于 URL 模
  • sqlalchemy 具有相同表名的多个数据库不起作用

    我正在使用 SQLAlchemy 使用 Python 处理两个数据库 这些数据库共享表名 因此在运行代码时收到错误消息 错误消息是 sqlalchemy exc InvalidRequestError Table wo is already
  • 亚马逊 CloudFront 延迟

    我正在为我正在开发的 Web 应用程序尝试使用 AWS S3 和 CloudFront 在应用程序中 我允许用户将文件上传到 S3 存储桶 使用 AWS SDK 并通过 CloudFront CDN 提供该文件 但问题是 即使文件已上传并在
  • 如何为数据源指定特定区域的ACM证书?

    我已经为两个区域 ap northeast 1 和 us east 1 的同一域颁发了 2 个证书 因为我的主服务器位于 ap northeast 1 而 CloudFront 需要 us east 1 中的证书 我想在 us east 1
  • AWS EC2 上的 Wordpress - 分配弹性 IP 后损坏

    所以 我安装了 WordPress 并且运行得很好 我可以通过从实例获得的公共 DNS 访问该站点和 wp admin 但是 一旦我创建了弹性 IP 并将其与实例关联 我就无法再访问 wp admin 并且主页样式表和 JavaScript
  • 为 Mariadb 安装连接器 C

    所以 我想使用 Mariadb 有一个连接器 C https downloads mariadb org connector c https downloads mariadb org connector c 我该如何安装它 坦白说 它的文
  • 为什么 dagger 被认为比 Guice 更适合 AWS lambda 实现?

    我知道 dagger 通过生成代码在编译时创建注入 因此它的性能比 Guice 更好 Guice 在运行时执行注入 但特别是对于 lambda 的情况 我看到在多个地方都提到 Dagger 是首选 是因为冷启动问题吗 由于lambda的冷启
  • Amazon S3:奇怪的错误 - “有时”签名不匹配,有时确实如此

    我正在为销售人员开发代码 我们正在使用 Appexchange 的 Force com for Amazon Web Services 应用程序 该应用程序由亚马逊提供 我正在计算机上从 Amazon S3 下载文件 有时我会收到下面提到的
  • 如何在python中检索aws批处理参数值?

    流程 Dynamo DB gt Lambda gt 批处理 如果将角色 arn 插入动态数据库 它是从 lambda 事件中检索的 然后使用submit job角色 arn 的 API 被传递为 parameters role arn ar
  • 在 AWS Lambda 中共享代码

    在 AWS Lambda 函数之间共享代码的首选方式是什么 我有这样的结构 functions a 节点模块 index js 包 json b 节点模块 index js 包 json c 节点模块 index js 包 json 这让每
  • Flask 和 sqlalchemy:处理会话

    我最近开始在我的项目中使用 Flask Sqlalchemy 并且在离开服务器一天后注意到 500 个错误 我认为这是由于数据库会话超时造成的 但我不确定 我们是否应该为每个请求创建一个新会话 还是 Flask 应用程序启动一一对应的会话
  • Python int 太大,无法放入 SQLite

    我收到错误 OverflowError Python int 太大 无法转换为 SQLite INTEGER 来自以下代码块 该文件约25GB 因此必须分部分读取 length 6128765 Works on partitions of
  • AWS Amplify Appsync 解决创建具有关系的对象时出现的错误

    我正在尝试创建一个具有关系的对象 我正在使用自动生成的放大突变 当我创建一个没有关系的对象时 操作会成功 当我创建具有关系的对象时 操作失败 我收到的错误消息是 The variables input contains a field na

随机推荐