Python Django располагает на Apache+mod_wsgi с прокси nginx: высоко колеблющаяся производительность

Первая вещь, которую я рекомендовал бы делать, устанавливает доступные обновления, один за другим. Трудоемкий, я знаю, но стоящий того. Если одно конкретное обновление вызывает отказ, это - лучший способ различить его.

Много обновлений, которые выпущены справка с точки зрения обеих безопасности, но также и производительность.

Кроме того, можно ли открыть Performance Monitor и выполнить ли ЦП, память и жесткий диск IO? при установке его для выполнения в течение 24-часового периода за перезагрузкой, Вы смогли определять что-то, что происходит, который создает препятствие.

Но как я сказал, запустите с обновлений.

3
задан 12 September 2013 в 12:30
2 ответа

Я исправил. Я преобразовал все производственные сайты для использования их собственного процесса (а также все сайты разработки вместе в одном процессе) в режиме демона. Графики Smokeping теперь намного лучше. Производительность стабильна.

Это все еще оставляет меня в неведении относительно того, почему у встроенного режима были эти проблемы, потому что, насколько я могу судить, у меня не было создания / уничтожения процесса, но, по крайней мере, у меня есть более работающий сервер.

Изменить:

В качестве примера для конфигурации сайта apache:

WSGIDaemonProcess mysite12 processes=1 threads=10 display-name=%{GROUP}
WSGIProcessGroup mysite12

А затем для сайтов с низким приоритетом я поместил это в wsgi.conf :

WSGIDaemonProcess developmentsites processes=1 threads=15 display-name=%{GROUP}

А затем в apache conf:

WSGIProcessGroup developmentsites

Посмотрите на разницу (также из-за прокси nginx):

enter image description here

2
ответ дан 3 December 2019 в 06:09

Пробовали ли вы использовать New Relic, чтобы попытаться определить, является ли это проблемой в вашем веб-приложении? Доступен бесплатный уровень, а также начальная полная пробная версия. Обзор того, что он может вам дать:

Если конкретная проблема с веб-приложением используемой серверной службы не выделяется как проблема отчет об анализе емкости сервера WSGI может что-то показать, например, о том, исчерпываются ли ваши возможности. Он также может сказать вам, есть ли у вас избыточное выделение ресурсов и трата ресурсов, что на самом деле случается довольно часто.

Кстати, в целом я бы не рекомендовал использовать 50 потоков запросов в одном процессе. Лучше использовать около 5 потоков и несколько процессов. Хотя именно то, что лучше всего, действительно зависит от конкретного приложения, от того, выполняет ли оно много работы, связанной с процессором, и сколько ему нужно обрабатывать длительные запросы. Может ли обслуживание большого количества статических файлов через один и тот же Apache также повлиять на это, причем режим демона mod_wsgi, возможно, даже является лучшим общим решением.

Вы также используете очень старую версию mod_wsgi, хотя не думаете, что это вызовет проблема.

Наконец, чтобы избежать проблем с некоторыми сторонними модулями расширения C для Python, если это единственное приложение WSGI на этом сервере, установите:

WSGIApplicationGroup %{GLOBAL}
2
ответ дан 3 December 2019 в 06:09

Теги

Похожие вопросы