如何在任何给定时间检查池中活动的sqlalchemy连接数?

时间:2016-01-13 19:35:08

标签: 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服务器和芹菜盒连接到它。

1 个答案:

答案 0 :(得分:8)

默认QueuePool的{​​{1}}方法returns the following

status

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()) 将返回已签出的连接数。