我正在开发一个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内存
▼ab -n 200 -c 200用于2CPU内核和1GB内存
▼vmstat 1用于1CPU核心和1GB内存
▼vmstat 1用于2CPU内核和1GB内存
我发现我只需要对Apache配置文件进行一些更改.我变了
WSGIDaemonProcess localhost
至
WSGIDaemonProcess localhost processes=2 threads=25
然后响应时间从7秒减少到2秒.
之后,我尝试了其他数量的CPU内核,当我设置与CPU内核数量相同的进程数时,性能会更好.