Про "кошмарный" httpc

161 views
Skip to first unread message

Heli Pilot

unread,
Dec 16, 2016, 12:22:34 PM12/16/16
to Erlang по-русски
Вот здесь Макс Лапшин написал:

Хотелось бы узнать, в чём кошмар?

Сейчас у нас уже неделю в продакшне работает inets + httpc. Всё отлично, никаких проблем.
Пришлось уйти от реально кошмарной связки nginx + ssi. Теперь спим спокойно :)

hiend

unread,
Dec 16, 2016, 3:40:19 PM12/16/16
to Erlang по-русски
Если вас не смущает отсутствие, например, поддержки keep-alive, пайпов, пулов, чанков и ssl - то всё с ним хорошо.
Про nginx не понял.

пятница, 16 декабря 2016 г., 21:22:34 UTC+4 пользователь Heli Pilot написал:

Heli Pilot

unread,
Dec 17, 2016, 4:20:56 AM12/17/16
to Erlang по-русски
keep-alive поддерживает, pipeline поддерживает, ssl (https) поддерживает, чанки (stream) поддерживает, а пулы получаются сами собой... достаточно задать параметры max_sessions и max_keep_alive_length

пятница, 16 декабря 2016 г., 23:40:19 UTC+3 пользователь hiend написал:

Yuri Zhloba

unread,
Dec 17, 2016, 6:05:48 AM12/17/16
to erlang-...@googlegroups.com
httpc показывает невысокую производительность когда нужно посылать много http-запросов. Для наших нужд его производительности не хватило. Заменили на hackney, и стало хорошо.

17 декабря 2016 г., 12:20 пользователь Heli Pilot <verto...@yandex.ru> написал:

--
Вы получили это сообщение, поскольку подписаны на группу "Erlang по-русски".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес erlang-russian+unsubscribe@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес erlang-russian@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.



--
Yuri Zhloba

skype: yzh44yzh
phone: +375 44 793 33 73

Максим Ильин

unread,
Dec 17, 2016, 7:25:04 AM12/17/16
to erlang-...@googlegroups.com
по моим замерам производительности, когда нужно было посылать много запросов, hackney показал самые худшие результаты, в три-четыре раза был быстрее как раз httpc, и лучше всех показал себя gun

З повагою,
Максим Ільїн

2016-12-17 13:05 GMT+02:00 Yuri Zhloba <yzh4...@gmail.com>:
httpc показывает невысокую производительность когда нужно посылать много http-запросов. Для наших нужд его производительности не хватило. Заменили на hackney, и стало хорошо.
17 декабря 2016 г., 12:20 пользователь Heli Pilot <verto...@yandex.ru> написал:
keep-alive поддерживает, pipeline поддерживает, ssl (https) поддерживает, чанки (stream) поддерживает, а пулы получаются сами собой... достаточно задать параметры max_sessions и max_keep_alive_length

пятница, 16 декабря 2016 г., 23:40:19 UTC+3 пользователь hiend написал:
Если вас не смущает отсутствие, например, поддержки keep-alive, пайпов, пулов, чанков и ssl - то всё с ним хорошо.
Про nginx не понял.

пятница, 16 декабря 2016 г., 21:22:34 UTC+4 пользователь Heli Pilot написал:
Вот здесь Макс Лапшин написал:

Хотелось бы узнать, в чём кошмар?

Сейчас у нас уже неделю в продакшне работает inets + httpc. Всё отлично, никаких проблем.
Пришлось уйти от реально кошмарной связки nginx + ssi. Теперь спим спокойно :)

--
Вы получили это сообщение, поскольку подписаны на группу "Erlang по-русски".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес erlang-russian+unsubscribe@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес erlang-...@googlegroups.com.

Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.



--
Yuri Zhloba

skype: yzh44yzh
phone: +375 44 793 33 73

Taras Shapovalov

unread,
Dec 17, 2016, 2:41:35 PM12/17/16
to erlang-...@googlegroups.com
Ну и вебсокеты httpc не поддерживает.

Heli Pilot

unread,
Dec 19, 2016, 4:15:24 AM12/19/16
to Erlang по-русски
А много запросов это сколько? Максимум, что я пробовал - это 200 одновременных запросов, но всё упирается в производительность сервера, к которому обращаемся.

суббота, 17 декабря 2016 г., 14:05:48 UTC+3 пользователь Yuri Zhloba написал:
httpc показывает невысокую производительность когда нужно посылать много http-запросов. Для наших нужд его производительности не хватило. Заменили на hackney, и стало хорошо.
17 декабря 2016 г., 12:20 пользователь Heli Pilot <verto...@yandex.ru> написал:
keep-alive поддерживает, pipeline поддерживает, ssl (https) поддерживает, чанки (stream) поддерживает, а пулы получаются сами собой... достаточно задать параметры max_sessions и max_keep_alive_length

пятница, 16 декабря 2016 г., 23:40:19 UTC+3 пользователь hiend написал:
Если вас не смущает отсутствие, например, поддержки keep-alive, пайпов, пулов, чанков и ssl - то всё с ним хорошо.
Про nginx не понял.

пятница, 16 декабря 2016 г., 21:22:34 UTC+4 пользователь Heli Pilot написал:
Вот здесь Макс Лапшин написал:

Хотелось бы узнать, в чём кошмар?

Сейчас у нас уже неделю в продакшне работает inets + httpc. Всё отлично, никаких проблем.
Пришлось уйти от реально кошмарной связки nginx + ssi. Теперь спим спокойно :)

--
Вы получили это сообщение, поскольку подписаны на группу "Erlang по-русски".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес erlang-russia...@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес erlang-...@googlegroups.com.

Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Heli Pilot

unread,
Dec 19, 2016, 4:16:21 AM12/19/16
to Erlang по-русски
В нашем случае вебсокеты не нужны. Это вообще отдельная тема.

суббота, 17 декабря 2016 г., 22:41:35 UTC+3 пользователь Taras написал:
Ну и вебсокеты httpc не поддерживает.
2016-12-17 15:25 GMT+03:00 Максим Ильин <maxi...@gmail.com>:
по моим замерам производительности, когда нужно было посылать много запросов, hackney показал самые худшие результаты, в три-четыре раза был быстрее как раз httpc, и лучше всех показал себя gun

З повагою,
Максим Ільїн

2016-12-17 13:05 GMT+02:00 Yuri Zhloba <yzh4...@gmail.com>:
httpc показывает невысокую производительность когда нужно посылать много http-запросов. Для наших нужд его производительности не хватило. Заменили на hackney, и стало хорошо.
17 декабря 2016 г., 12:20 пользователь Heli Pilot <verto...@yandex.ru> написал:
keep-alive поддерживает, pipeline поддерживает, ssl (https) поддерживает, чанки (stream) поддерживает, а пулы получаются сами собой... достаточно задать параметры max_sessions и max_keep_alive_length

пятница, 16 декабря 2016 г., 23:40:19 UTC+3 пользователь hiend написал:
Если вас не смущает отсутствие, например, поддержки keep-alive, пайпов, пулов, чанков и ssl - то всё с ним хорошо.
Про nginx не понял.

пятница, 16 декабря 2016 г., 21:22:34 UTC+4 пользователь Heli Pilot написал:
Вот здесь Макс Лапшин написал:

Хотелось бы узнать, в чём кошмар?

Сейчас у нас уже неделю в продакшне работает inets + httpc. Всё отлично, никаких проблем.
Пришлось уйти от реально кошмарной связки nginx + ssi. Теперь спим спокойно :)

--
Вы получили это сообщение, поскольку подписаны на группу "Erlang по-русски".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес erlang-russia...@googlegroups.com.

Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес erlang-...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.



--
Yuri Zhloba

skype: yzh44yzh
phone: +375 44 793 33 73

--
Вы получили это сообщение, поскольку подписаны на группу "Erlang по-русски".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес erlang-russia...@googlegroups.com.

Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес erlang-...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
Вы получили это сообщение, поскольку подписаны на группу "Erlang по-русски".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес erlang-russia...@googlegroups.com.

Michael Uvarov

unread,
Dec 19, 2016, 4:47:16 AM12/19/16
to erlang-...@googlegroups.com
Порекламирую что-ли. Стабильная версия 0.0.0 :) Пул - руками (cuesport, poolboy, на выбор). Половину фич не поддерживает. Используем для ДДОСа^W лоад-тестинга.
https://github.com/esl/fusco
Просто lhttpc был довольно медленный и у него было слишком много фич.

Для вебсокетов есть отдельные либы типа https://github.com/madtrick/wsecli (не рекомендую эту, но у нас она в escalus, для XMPP over websockets).

Yuri Zhloba

unread,
Dec 19, 2016, 5:24:00 AM12/19/16
to erlang-...@googlegroups.com
> А много запросов это сколько? Максимум, что я пробовал - это 200 одновременных запросов, но всё упирается в производительность сервера, к которому обращаемся.

Ну да, "много"/"мало" -- это все индивидуально. В нашем случае речь идет о тысячах запросов в секунду :)

19 декабря 2016 г., 11:44 пользователь Michael Uvarov <fre...@gmail.com> написал:
Порекламирую что-ли. Стабильная версия 0.0.0 :) Пул - руками (cuesport, poolboy, на выбор). Половину фич не поддерживает. Используем для ДДОСа^W лоад-тестинга.
https://github.com/esl/fusco
Просто lhttpc был довольно медленный и у него было слишком много фич.

Для вебсокетов есть отдельные либы типа https://github.com/madtrick/wsecli (не рекомендую эту, но у нас она в escalus, для XMPP over websockets).


On 12/16/2016 06:22 PM, Heli Pilot wrote:
Вот здесь Макс Лапшин написал:

Хотелось бы узнать, в чём кошмар?

Сейчас у нас уже неделю в продакшне работает inets + httpc. Всё отлично, никаких проблем.
Пришлось уйти от реально кошмарной связки nginx + ssi. Теперь спим спокойно :)
--
Вы получили это сообщение, поскольку подписаны на группу "Erlang по-русски".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес erlang-russian+unsubscribe@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес erlang-russian@googlegroups.com.

Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
Вы получили это сообщение, поскольку подписаны на группу "Erlang по-русски".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес erlang-russian+unsubscribe@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес erlang-russian@googlegroups.com.

Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Денис Фахртдинов

unread,
Dec 19, 2016, 5:50:48 AM12/19/16
to erlang-...@googlegroups.com
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес erlang-russia...@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес erlang-...@googlegroups.com.

Heli Pilot

unread,
Dec 19, 2016, 7:38:55 AM12/19/16
to Erlang по-русски
Солидно :)
Да, в этом случае для httpc придется ставить max_sessions = "большое число", а max_keep_alive_length = "маленькое число", иначе куча клиентов встают в очередь и будут долго ждать ответа на запрос, поэтому производительность падает.
Но тогда имеем кучу коннектов к серверу.

Вообще не понятно, как тот же hackney или gun разруливают такую ситуацию. В readme у gun гордо написано: "Gun is always connected.".  Ок, это понятно, т.е. сокращаем лишние расходы на создание соединения. 
Но это не поможет, если имеем тысячи запросов в секунду. Очередь всё равно будет забиваться запросами и опять имеем ожидающих клиентов.

понедельник, 19 декабря 2016 г., 13:24:00 UTC+3 пользователь Yuri Zhloba написал:
> А много запросов это сколько? Максимум, что я пробовал - это 200 одновременных запросов, но всё упирается в производительность сервера, к которому обращаемся.

Ну да, "много"/"мало" -- это все индивидуально. В нашем случае речь идет о тысячах запросов в секунду :)
19 декабря 2016 г., 11:44 пользователь Michael Uvarov <fre...@gmail.com> написал:
Порекламирую что-ли. Стабильная версия 0.0.0 :) Пул - руками (cuesport, poolboy, на выбор). Половину фич не поддерживает. Используем для ДДОСа^W лоад-тестинга.
https://github.com/esl/fusco
Просто lhttpc был довольно медленный и у него было слишком много фич.

Для вебсокетов есть отдельные либы типа https://github.com/madtrick/wsecli (не рекомендую эту, но у нас она в escalus, для XMPP over websockets).


On 12/16/2016 06:22 PM, Heli Pilot wrote:
Вот здесь Макс Лапшин написал:

Хотелось бы узнать, в чём кошмар?

Сейчас у нас уже неделю в продакшне работает inets + httpc. Всё отлично, никаких проблем.
Пришлось уйти от реально кошмарной связки nginx + ssi. Теперь спим спокойно :)
--
Вы получили это сообщение, поскольку подписаны на группу "Erlang по-русски".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес erlang-russia...@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес erlang-...@googlegroups.com.

Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
Вы получили это сообщение, поскольку подписаны на группу "Erlang по-русски".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес erlang-russia...@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес erlang-...@googlegroups.com.

Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages