【发布时间】:2020-09-18 06:09:13
【问题描述】:
我正在使用 Heroku 来部署我的应用程序,我正在使用 gunicorn。
对于某些请求,我们需要很长时间才能生成由 WSGI 处理程序生成的 HTTP 响应。日志没有提供任何见解和检查新遗物我发现了以下信息:
[交易图表][1] [1]:https://i.stack.imgur.com/9vt0p.png [交易明细][2] [2]:https://i.stack.imgur.com/P1f98.png [交易追踪][3] [3]:https://i.stack.imgur.com/AJkKQ.png
你知道会发生什么吗?或者你对如何解决这些问题有什么建议吗?谢谢!
【问题讨论】:
-
您可以显示其中一个视图+模板的代码,否则这是一个疯狂的猜测。很多时候,问题是“遵循”循环中的外键关系,这会创建数百个查询,通常可以通过使用
select_related()方法来修复。 -
@Borut 代码真的很大,模板也很大!这些问题在本地环境中无法重现!所以我想如果这个问题是由于这个原因引起的,它应该可以在本地环境中复制吧:)?我正在尝试从 gunicorn 切换到 uWSGI,看看能否解决问题。
-
我将从安装 Django 调试工具栏开始。这可能会揭示查询的问题。然后在本地和生产数据库上运行解释查询并比较它们。我要检查的最后一件事是磁盘 I/O 和 CPU 性能。