2013-02-13 7 views
1

У меня есть огромная проблема :) Вот история: у меня есть 2 веб-приложения, работающие на одном сервере. Каждый из них начинается с uwsgi через супервизор (там тоже nginx). Один проект (app2) делает HTTP-запросы через urllib2 другому (app1). Когда я начинаю осаду (siege -d1 -r10 -c200 http://app1.mydomain.com/test) Другой проект (app2) начинает не реагировать, и все работники uwsgi этого приложения2 становятся занятыми. Среднее время app1 откликается от браузера, как будто он не находится под «осадой». И все рабочие становятся заняты только с течением времени. Когда я удаляю эту строку с urllib2 и запускаю тесты, все проекты чувствуют себя хорошо. Конфигурация Uwsgi для приложений:uWSGI + python urllib2 очень медленно

[uwsgi] 
socket = /var/run/core/app1.sock 
max-requests = 5000 
listen = 2048 
master = true 
processes = 30 
harakiri = 15 
harakiri-verbose = 1 
buffer-size = 65536 
stats = /tmp/app1_stats.sock 

Они абсолютно идентичны. И обратите внимание, пожалуйста, что я не «осаждаю» приложение, которое выполняет HTTP-запросы. Если это имеет значение, все сделано с помощью фляжки. Спасибо.

ответ

0

Я решил проблему. Если кому-то интересно: просто используйте urllib3 и создайте HTTPConnectionPool().

+0

любые другие данные? У меня тоже были подобные проблемы. –

Смежные вопросы