我有一种情况,由于流量负载很大,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服务器和芹菜盒连接到它。
答案 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())
将返回已签出的连接数。