Уведомления

Группа в Telegram: @pythonsu

#1 Июль 27, 2010 13:34:09

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

WSGI, где многопоточность???

Daevaorn
o7412369815963
получается все фреймворки которые подключены через mod_wsgi: Django, TurboGears, Pylons и др. - работают в однопоточном режиме.
Нет.

Вы так и не привели настройки mpm апача и не написали как вы тестировали.

Пока очевидно, что вы не понимаете что вы хотете сделать и как apache+mod_wsgi работают в принципе.
вот кусок конфига:
ServerLimit 16
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
оно?

тестировал так:
с 3-х браузеров одновременно подключался к серверу. резуьтат получал поочередно каждые 5 сек.
например: в первом браузере 15 - 20, второй: 20 - 25, 3-ий: 25 - 30,
(цифры показывают время)

Отредактировано (Июль 27, 2010 13:40:12)

Офлайн

#2 Июль 27, 2010 14:01:14

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

WSGI, где многопоточность???

o7412369815963
вот кусок конфига:
Это в какой секции?

Попробуй еще вместо
ServerName localhost
написать
ServerName main

Если ты описываешь WSGIDaemonProcess внутри виртуального хоста, то имя должно совпадать.



Офлайн

#3 Июль 27, 2010 15:51:21

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

WSGI, где многопоточность???

Lexander
o7412369815963
вот кусок конфига:
Это в какой секции?

Попробуй еще вместо
ServerName localhost
написать
ServerName main

Если ты описываешь WSGIDaemonProcess внутри виртуального хоста, то имя должно совпадать.
секция <IfModule mpm_worker_module>
изменил имя на main

пока все так же

Офлайн

#4 Июль 27, 2010 16:27:23

alexx11
От:
Зарегистрирован: 2010-05-13
Сообщения: 208
Репутация: +  0  -
Профиль   Отправить e-mail  

WSGI, где многопоточность???

Весь день не заходил на форум, ща глянул - жесть! Давайo7412369815963 , я за тебя тоже буду болеть, завтра попробую подключится.
Только непонятно у всех остальных нормально? У меня в чистом WSGI пример выше с обычным sleep отдаёт ответы одновременно.



Офлайн

#5 Июль 27, 2010 16:33:03

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

WSGI, где многопоточность???

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

Офлайн

#6 Июль 27, 2010 16:37:16

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

WSGI, где многопоточность???

o7412369815963
с 3-х браузеров одновременно подключался к серверу. резуьтат получал поочередно каждые 5 сек.
например: в первом браузере 15 - 20, второй: 20 - 25, 3-ий: 25 - 30,
Это не методика. Сделайте тест правильно – автоматизированный.



Офлайн

#7 Июль 27, 2010 16:52:02

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

WSGI, где многопоточность???

сейчас выяснил что кол-во процессов которые указываются в “<IfModule mpm_worker_module> StartServers 1”
не влияют на на “WSGIDaemonProcess main user=www-data group=www-data processes=2 threads=5”
они работают параллельно, т.е. если StartServers = 3, и processes = 5, то всего будет 3+5+ (2 родительских) = 10 (или около того)

Офлайн

#8 Июль 27, 2010 16:58:45

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

WSGI, где многопоточность???

> (2 родительских)
сейчас пересчитал, StartServers уже учитывает кол-во родительских.

Офлайн

#9 Июль 27, 2010 17:14:40

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

WSGI, где многопоточность???

Daevaorn
o7412369815963
с 3-х браузеров одновременно подключался к серверу. резуьтат получал поочередно каждые 5 сек.
например: в первом браузере 15 - 20, второй: 20 - 25, 3-ий: 25 - 30,
Это не методика. Сделайте тест правильно – автоматизированный.
вот автоматизированный. processes=5 threads=5 = 25 потоков
$ ab -n 25 -c 25 http://localhost/
Concurrency Level: 25
Time taken for tests: 5.010 seconds
Complete requests: 25
Time per request: 5009.800 [ms] (mean)
Time per request: 200.392 [ms] (mean, across all concurrent requests)
min mean[+/-sd] median max
Total: 5004 5007 1.9 5009 5009

$ ab -n 50 -c 50 http://localhost/
Concurrency Level: 50
Time taken for tests: 10.018 seconds
Complete requests: 50
Time per request: 10017.541 [ms] (mean)
Time per request: 200.351 [ms] (mean, across all concurrent requests)
min mean[+/-sd] median max
Total: 5005 7511 2526.9 10008 10016
в первом тесте 25 запросов выполнились одновременно за 5 сек.
во 2-ом 50 запросов на 25 потоков, первые выполнились за 5 сек, другие висели 10 сек (с ожиданием первых), сумарное время 10сек.

вообщем все робит, так как я и предпологал. фича браузера чуть не поломала моё представление.

Отредактировано (Июль 27, 2010 17:15:13)

Офлайн

#10 Июль 28, 2010 10:58:29

alexx11
От:
Зарегистрирован: 2010-05-13
Сообщения: 208
Репутация: +  0  -
Профиль   Отправить e-mail  

WSGI, где многопоточность???

o7412369815963 О! респект и уважуха что разобрался, а теперь ответь на вопрос пожалуйста, если не sleep а поиск из массива вставить, ну как из предыдущего примера, то второй клиент зависнет или нет?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version