我如何在任何给定时间检查池中活动的 sqlalchemy 连接数?
How could I check the number of active sqlalchemy connections in a pool at any given time?
我遇到这样一种情况,由于高流量负载,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()
将 return 签出的连接数。
我遇到这样一种情况,由于高流量负载,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()
将 return 签出的连接数。