如何有效地运行具有多CPU核心的Django

时间:2015-12-02 23:47:25

标签: django apache performance mod-wsgi multicore

我正在开发一个Web应用程序,但是当我增加CPU内核数量时,Django的性能并没有提高。 (实际上,1个核心的性能最高,2,4,8个核心的性能差异很大) 我的应用程序所做的是简单地从数据库加载静态文件(HTML,CSS,JS)和一些数据。 我使用Apache作为Web服务器和mod_wsgi。

这是Django的正常行为吗? 如果是这样,我怎样才能提高多核的性能?
(我希望增加内核数量,因为只有1个内核,CPU使用率达到约90%)

▼ab -n 200 -c 200用于1CPU核心和1GB内存 enter image description here

▼ab -n 200 -c 200用于2CPU核心和1GB内存 enter image description here

▼vmstat 1用于1CPU核心和1GB内存 enter image description here

▼vmstat 1用于2CPU核心和1GB内存 enter image description here

1 个答案:

答案 0 :(得分:10)

我发现我只需要对Apache配置文件进行一些更改。 我改变了

WSGIDaemonProcess localhost

WSGIDaemonProcess localhost processes=2 threads=25

然后响应时间从7秒减少到2秒 之后,我尝试了其他数量的CPU内核,当我设置与CPU内核数量相同的进程数时,性能会更好。