首页 > 解决方案 > UWSGI 响应时间导致 504 网关超时

问题描述

我正在使用这个 docker -container结合 Nginx 运行 UWSGI 。在大约 16 小时的正常运行时间后,UWSGI 服务器的响应时间突然飙升,我收到 504 网关超时。Nginx 提供的所有页面和文件仍然可以访问。到目前为止,我解决此问题的所有尝试均未成功。除了由于代码运行时而导致超时的人之外,我没有在网上找到任何东西。这个项目似乎并非如此,因为 Graylog 告诉我,我的方法运行时间 < 100 毫秒。但是 uwsgi 在调用我的方法之前或之后似乎在做一些非常耗时的事情。有没有人遇到过这种问题?

代码

标签: dockernginxuwsgi

解决方案


事实证明 psycopg2 在某些情况下存在内存泄漏(至少这是我们怀疑的)。添加分析器后,我们发现 psycopg2 cursor.execute 方法在正常运行一段时间后需要超过 50 秒才能完成。一些研究使我们发现了一些内存泄漏问题,每当初始化游标时没有名称时似乎就会发生这种问题。遗憾的是,由于我们使用的提交模式,我们不能只为光标指定一个名称。我们通过放弃连接池并手动处理连接刷新来解决该问题,这样内存泄漏问题就不会成为问题,因为连接打开的时间不够长......


推荐阅读