我正在使用mod_wsgi运行一个Django应用程序,并试图了解apache进程是如何工作的。
这里是我的Apache的httpd.conf:
<VirtualHost *:80> ServerName www.example.com ServerAlias example.com WSGIDaemonProcess example.com processes=2 threads=15 user=django1 group=django1 WSGIProcessGroup example.com WSGIScriptAlias / /path/to/django.wsgi </VirtualHost>
我设置了两个进程,但是当我查看top ,我看到用户django1下有两个进程,而用户www-data下面有两个进程:
PID USER VIRT RES COMMAND 14035 django1 524m 350m apache2 14116 django1 499m 326m apache2 11800 root 347m 299m apache2 17486 www-data 347m 292m apache2 17689 www-data 347m 292m apache2
为什么那些www数据stream程在那里? 我正在运行别的东西,不知道吗? 这似乎是在浪费记忆。 只有用户django1进程的两个apache2进程显示任何CPU负载。 www数据用户没有任何CPU负载。
当你使用守护进程模式,并且你的Django应用程序因此在一个独立于主进程的Apache进程中运行时,你仍然需要Apache父进程和至less一个Apachesubprocess。 后者是接受请求并将它们代理到mod_wsgi守护进程的接口。 读: