-
Добрый день!
Зачитался в последний месяц-два разного рода инфой по Unicorn + HaProxy. Существует ли что-нибудь подобное для питона?
Вкратце суть такова: имеет некоторое число воркеров, обычно == количеству процессоров в системе, каждый воркер одновременно обрабатывает только 1 запрос. Все запросы превышеющее количество воркеров кучкуются в недрах HaProxy ожидая своей очереди.
Судя по тестам, ни один вариант с тредами не способен побить такое решение по скорости, так вот вопрос: под чем лучше всего запускать воркеров? -
prefork
-
Существует ли что-нибудь подобное для питона?
Flup, superfastcgi
имеет некоторое число воркеров, обычно == количеству процессоров в системе, каждый воркер одновременно обрабатывает только 1 запрос.
Так уже сто лет может и работать flup.
Все запросы превышеющее количество воркеров кучкуются в недрах HaProxy ожидая своей очереди.
В ОС есть и так беклог для коннекшенов к сокету.
То что в "их мире" до этого додумались только сейчас - ROFL:-)
-
Вообще-то, очереди задач на пути к воркерам как таковой нет. Есть небольшой таймаут в веб-сервер, который, не получая за него отклик от бэкенда отваливается с 503 (или другой 5xx).
Но другой вопрос, что если воркеры не справляются с нагрузкой, то очередь только оттянет неминуемый факап и сделает его громче. Уж лучше честно отшибать юзеров, если система не справляется.
-
Вообще-то, очереди задач на пути к воркерам как таковой нет.
Есть беклог сокета на соединения - http://docs.python.org/library/socket.html?highlight=backlog#socket.socket.listen. Чем не очередь?
-
Тем, что например lighttpd её не ждёт. Сам flup вполне может ждать 128 соединений, но если они обрабатываются медленно, lighttpd сам их прервёт. Чтоб сделать такую очередь, теоретически нужен ещё один проксирующий сервер между веб-сервером и бэкендом, который будет accept'ить коннекты от веб сервера и долго-долго ждать бэкенд. Но повторюсь, на практике это никого не спасёт.
-
Судя по тестам, ни один вариант с тредами не способен побить такое решение по скорости
воркеры + трэды будут шустрее, если есть выход в сишные библиотеки, работа с сетью или файлами
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.



