Python 使用sqlalchemy的Flask应用程序内存泄漏

Python 使用sqlalchemy的Flask应用程序内存泄漏,python,caching,memory-leaks,sqlalchemy,flask-sqlalchemy,Python,Caching,Memory Leaks,Sqlalchemy,Flask Sqlalchemy,我有一个在Flask服务器上运行的应用程序(在容器中) 我们正在连接db,并使用sqlalchemy(orm)管理横断面 数据库包含多个表(每个表对应个人ID) 我们的应用程序可以一次处理多个请求 这是应用程序操作的简化: 当收到新请求时,我们从相关表(根据发出请求的人员ID)查询相关数据,并将其保存在我们自己的缓存中(由我们管理) 缓存实际上是一个dict的dict-因此它看起来像: db_dict=={PERSON_ID1:[{SESSION_ID1:db_SESSION1,SESSIO

我有一个在Flask服务器上运行的应用程序(在容器中)

  • 我们正在连接db,并使用sqlalchemy(orm)管理横断面
  • 数据库包含多个表(每个表对应个人ID)
  • 我们的应用程序可以一次处理多个请求
这是应用程序操作的简化: 当收到新请求时,我们从相关表(根据发出请求的人员ID)查询相关数据,并将其保存在我们自己的缓存中(由我们管理) 缓存实际上是一个dict的dict-因此它看起来像:

db_dict=={PERSON_ID1:[{SESSION_ID1:db_SESSION1,SESSION_ID2:db_SESSION2}],PERSON_ID2:…}

会话ID通过使用flask.\u app\u ctx\u stack.\uu ident\u func\uu()确定。 以及使用
orm.scoped_会话创建的会话(self.db_session_工厂,scopefunc=flask.\u app_ctx_stack.\uu ident_func)

我们正在关闭会话,并在teardown_appcontext中从dict中“弹出”它。 尽管如此,还是存在泄漏—内存随着请求的处理而增加—并最终达到容器限制

我很确定缓存机制是问题所在,但我找不到漏洞。 有什么想法吗