【问题标题】:Gunicorn Timeout Server Slow issuesGunicorn 超时服务器慢问题
【发布时间】:2018-12-28 09:45:08
【问题描述】:

我已经部署了一个webapplication Python Django Rest Framework 前端是Vue js,数据库是Mysql。

在数字海洋上托管网站,我使用 CPU 优化 Droplets,配置如下 8 GB 4 vCPU 我面临性能问题,尽管托管使用 8gb 内存进行 CPU 优化,但网站速度非常慢。

当我检查错误日志时,我发现 [CRITICAL] WORKER TIMEOUT (pid:9116) 我增加了 gunicorn 的超时时间,但我仍然面临同样的问题。

1)我想提高性能 2)我想解决超时问题,我增加了 gunicorn 中的值,因为 nginx 最大值是 75s 我没有做任何添加。最好的解决方案是什么。

请帮助我是否有其他方法来测试网站的性能。

【问题讨论】:

    标签: python django nginx webserver gunicorn


    【解决方案1】:

    我认为你需要优化

    在生产服务器上优化 django 的技巧。

    1. 检查您的查询。最好的检查方法是使用 django 调试工具栏,它会显示你产生了多少查询,如果你认为有很多,那么优化你的查询。前任。使用 prefetch_related 或 select_related 加入表,否则会一一查询。

    2. 索引您的表,尝试索引您在查询时一直使用的列。索引时要小心,只需索引您真正想要的列,因为更新、删除和添加的缺点会变慢。

    3. 检查您的数据库运行状况,如果您经常删除或更新那些实际存储在某处的数据并且它仍然是您的索引的一部分,它称为 Dead Rows,您可以通过执行删除它如果您使用的是 postgres,则可以使用一些命令,例如 vacuum

    4. 扩展您的服务器,这实际上取决于服务器的请求/流量,检查 RAM 或 CPU 峰值以确定所需的单位。作为经验,我的一些表上至少有 10m 行数据,在某些情况下,我将其交叉引用为 30k 数据,在 2gb RAM 和 1gb CPU 上,在少数同时请求中工作正常。

    【讨论】:

      猜你喜欢
      • 2020-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-02
      • 1970-01-01
      • 2015-07-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多