0

我们有一个应用程序在生产环境中运行良好,但在开发机器上运行速度很慢。

Django==2.2.4

我正在使用 Ubuntu 20.04,但其他开发人员正在使用 macOS 甚至 Windows。

与开发笔记本电脑相比,我们的生产服务器非常小(它在每个开发环境中运行速度都很慢,我们是 5 个开发人员)。

该应用程序发出多个请求,因为它是一个在前端使用 Django Rest Framework 和 React.js 的单页应用程序。

我们在本地尝试了不同的数据库(目前是 postgresql,尝试了 MySQL 和 sqlite3),使用 docker,没有 docker,但它不会改变性能。

每个单独的请求都需要几秒钟来执行,但是当它们一起执行时,事情变得非常缓慢。随着更多请求的执行,性能开始下降。

应用程序在开发环境中加载需要 2/3 分钟,而在任何生产或暂存环境中,加载时间只需 10 秒以上。

还尝试在后端和前端禁用 DEBUG,没有任何变化。

我认为原因之一是开发服务器是单线程的,并且在前一个完成之前它不会处理请求。这使得开发环境非常难以使用。

我已经看到了使开发服务器多线程的替代方案(插件),但这些解决方案不适用于最新版本的 django。

我们可以尝试哪些替代方案来改善这一点?

4

1 回答 1

0

看起来发布这个问题帮助我思考了一个替代方案。在开发环境中使用 gunicorn 确实很有帮助。

安装它

pip install gunicorn

然后使用这个执行它:

venv/bin/gunicorn  be-app.wsgi --access-logfile - --workers 2 --bind localhost:8000 

当然,如果我想访问静态和媒体文件,我必须设置一个本地 nginx,但这没什么大不了的

于 2020-07-14T16:34:26.687 回答