Я запускаю приложение Django с использованием mod_wsgi и пытаюсь понять, как работают процессы 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-data? Я занимаюсь чем-то другим и не знаю об этом? Похоже, они зря тратят память. Только два процесса apache2 для пользователя django1 процессы показывают любую загрузку процессора. В www-data у пользователей нет загрузки процессора.
Когда вы используете режим демона и ваше приложение Django, следовательно, выполняется в отдельном процессе от основных процессов Apache, вам по-прежнему нужен родительский процесс Apache и хотя бы один дочерний процесс Apache. Последний - это то, что принимает запросы и передает их процессам демона mod_wsgi. Читать: