【发布时间】:2025-12-11 14:40:01
【问题描述】:
我正在开发一个 Web 应用程序,但是当我增加 CPU 内核的数量时,我遇到了一个问题,即 Django 的性能没有提高。
(实际上1核性能最高,2、4、8核性能差别不大)
我的应用程序所做的只是从数据库中加载静态文件(HTML、CSS、JS)和一些数据。
我使用 Apache 作为 Web 服务器和 mod_wsgi。
这是 Django 的正常行为吗?
如果是这样,我该如何提高多核性能?
(我想增加内核数量,因为 CPU 使用率达到 90% 左右,只有 1 个内核)
▼ab -n 200 -c 200 1CPU核心和1GB内存
【问题讨论】:
-
Django 建立在 Python 之上,而 CPython 存在导致此问题的 GIL 问题。记住下面的 Django 是一个 web 框架,你最大的敌人是 IO 而不是 CPU。 IO 可以通过使用智能技术 AKA 缓存、优化查询和 Session 内存数据库来修复。
-
不,阿卜杜勒错了。这与 Django 或 Python 无关,但取决于您如何配置 Apache
-
丹尼尔,你是对的。我将 WSGIDaemonProcess localhost 更改为 WSGIDaemonProcess localhost processes=2 threads=25,然后性能变得更好了。
标签: django apache performance mod-wsgi multicore