Я пытаюсь настроить производительность приложения Django, которое обслуживается через Apache.
При выполнении нагрузочного тестирования с помощью Locust я обнаружил, что задержка очень высока, когда сервер под большой нагрузкой. Прямо сейчас я использую mpm_event_module
, используя ThreadsPerChild=25
, так как это, кажется, обычная вещь, которую я нашел в примерах конфигов. Точно так же, внутри моей конфигурации сайта у меня есть
WSGIDaemonProcess ... processes=8 threads=15 python-path=...
, поскольку это также соответствует некоторому примеру.
Мне было интересно, применяется ли GIL в Python к веб-серверу когда настроен таким образом. Если так, значит ли это, что мне нужно изменить конфигурацию, чтобы использовать больше процессов и меньше потоков, чтобы получить больше параллелизма? Когда я попытался это сделать, в ходе моего нагрузочного тестирования было зарегистрировано гораздо больше сбоев при загрузке файлов stati c, поэтому я не уверен, имеет ли это смысл.