mysql - 我如何在任何给定时间检查池中事件的 sqlalchemy 连接数?

标签 mysql sqlalchemy connection-pooling

我有一种情况,由于高流量负载,sqlalchemy 会不时地耗尽事件连接,我想运行一些测试来验证和优化每个用例的池参数。但是,我找不到一种直接轮询事件连接数的方法。

当前设置在线:

args = ...
mapping = {
        'pool_size': 10,
        'max_overflow': 10,
        'pool_timeout': 30,
        'pool_recycle': 1800
    }
engine = sqlalchemy.create_engine(*args, **mapping)

MySQL 服务器上的最大连接数设置为 200,共有大约 20 个 Web 服务器和 celery boxes 连接到它。

最佳答案

默认的 QueuePool 有一个 status 方法 returns the following :

def status(self):
        return "Pool size: %d  Connections in pool: %d "\
            "Current Overflow: %d Current Checked out "\
            "connections: %d" % (self.size(),
                                 self.checkedin(),
                                 self.overflow(),
                                 self.checkedout())

Pool.checkedout() 将返回 checkout 的连接数。

关于mysql - 我如何在任何给定时间检查池中事件的 sqlalchemy 连接数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34775501/

相关文章:

python - 如何按最新子项中的列过滤 sqlalchemy 查询

python - sqlalchemy,说小数没有定义?

java - 读取线程转储以调试耗尽的数据库连接池

mysql - 创新数据库;多个数据目录

php - 将来自多个文本字段的数据插入 MYSQL 数据库

python - 如何判断字符串的类型

mongodb - 使用MongoDB Go驱动程序,如何设置连接池?

java - 如何将自己的连接池的初始化放在struts-config.xml中?

mysql - 如何在单个数据库事务中允许数据截断?

php - MySQL+PHP 错误:mysqli_stmt::execute() 不正确的日期时间值:“