LINUX.ORG.RU

Yaws 1.93

 , , yaws


0

4

Высокопроизводительный HTTP 1.1 веб-сервер Yaws обновился до версии 1.93. Как и прежде поддерживаются два режима работы:

  • автономный режим, в котором Yaws работает как обычный демон;
  • режим, в котором Yaws работает как часть другого Erlang приложения.

Некоторые изменения:

  • многочисленные исправления, связанные с безопасностью;
  • ряд улучшений и исправлений yaws_revproxy;
  • добавлены новые HTTP коды (RFC 6585);
  • добавлена ​​поддержка предварительно сжатых статических файлов;
  • улучшения flush/1, направленные на устранение DoS-атак;
  • журнал отладочных сообщений error_logger теперь работает и во встроенных режимах;
  • исправлены ошибки в yaws_api:parse_multipart_post/1,2 для фрагментированных запросов;
  • поддержка rebar.

Репозиторий проекта на github.com

>>> Подробности

★★★★★

Проверено: maxcom ()
Последнее исправление: maxcom (всего исправлений: 2)

Еще один...

anonymous
()
Ответ на: комментарий от sgasgar1234

Для чего он нужен

в очередной раз показывает, что никакие супер-пупер распределённые параллельные функциональные парадигмы не могут быть быстрее сишечки.

Bad_ptr ★★★★★
()
Ответ на: комментарий от sgasgar1234

Because Yaws uses Erlang's lightweight threading system, it performs well under high concurrency. A load test conducted in 2002 comparing Yaws and Apache found that with the hardware tested, Apache 2.0.39 with the worker MPM failed at 4,000 concurrent connections, while Yaws continued functioning with over 80,000 concurrent connections.

ymn ★★★★★
() автор топика

а где почитать какие языки он умеет кроме erlang? по ссылке в examples нашёл только тэги

<erl>
...
</erl>

proofit404
()

а сравнение с веб-серверами на других функциональных языках где-нибудь есть? хотя, раз уж эрланг под это заточен

aptyp ★★★★
()

многочисленные исправления, связанные с безопасностью;

Хех, а я-то думал он еще в версии 1.7 стал непробиваемым :)

malbolge ★★
()
Ответ на: комментарий от loz

Конкретно об этом ничего не слышал, а вообще знаю десятка два разных веб-серверов.

CYB3R ★★★★★
()
Ответ на: комментарий от proofit404

а где почитать какие языки он умеет кроме erlang?

Yaws умеет CGI ( см. yaws_cgi:call_cgi ) и FastCGI (точнее проксирование на сабж, см. параметр fcgi_app_server в конфиге). Вот только для меня очень неочевидно, зачем кому-то через yaws пускать свои приложения, когда на свете столько хороших серверов.

beka
()
Ответ на: комментарий от beka

Вот только для меня очень неочевидно, зачем кому-то через yaws пускать свои приложения, когда на свете столько хороших серверов.

Приложения на эрланге же!

loz ★★★★★
()
Ответ на: комментарий от loz

неочевидно, зачем кому-то через yaws пускать свои приложения, когда на свете столько хороших серверов.

Приложения на эрланге же!

Вы не поняли суть комментария Беки.

malbolge ★★
()
Ответ на: комментарий от mephistopheles

По-русски. Yaws так же хорош как и nginx. В каких-то моментах он чуть лучше nginx в каких-то - чуть хуже. Правда, более неизвестный среде пыхеров-пистонеров-аспнетеров.

malbolge ★★
()

По производительности почти как lighttpd. Неплохо

glibych ★★
()
Ответ на: комментарий от malbolge

Суть вообще часто ускользает от меня.

loz ★★★★★
()
Ответ на: комментарий от ymn

Ну не знаю, я вот щас nginx и yaws поставил из реп дебиана. И запустил ab -
результат nginx - http://p.py6.ru/view/121/

http://p.py6.ru/view/122/

на 100 конкурентных запросах явс почему-то перестает отвечать ближе к 10000 запросам.

Тогда я сделал 10 конкурентных запросов -
явс - http://p.py6.ru/view/123/
nginx - http://p.py6.ru/view/124/

По последнему тесту -
Yaws - Requests per second: 4350.44 [#/sec] (mean)
Nginx - Requests per second: 20315.54 [#/sec] (mean)

pi11 ★★★★★
()
Ответ на: комментарий от malbolge

В каких-то моментах он чуть лучше nginx

Это в каких? Ну кроме удобностьи использования в erlang приложениях?

pi11 ★★★★★
()
Ответ на: комментарий от pi11

Это в каких?

Ну, например в моменте динамического контента. Yaws лучше. Зато nginx хорош как прокся. Для Yaws-a и не только.

malbolge ★★
()

названия на YA* начинают бесить.это ведь Yet Another Web Server подразумевается?

marvin_yorke ★★★
()
Ответ на: комментарий от pi11

Твой тест - говно. Мой тоже говно, но немного более объективное и, как приятный бонус, ничего не падает.

Хоть немножко уравняем дефолтные настройки:

@yaws.conf:
max_connections = 768
keepalive_timeout = 30000

@nginx.conf:
worker_processes 1; # Хуле давать на ровном месте 4хкратное преимущество на радость нубам?
worker_connections 768;
keepalive_timeout 30000;

Тесты на статике, зато этой статики немало - гонять 3,5 байта неинтересно :) Забегая вперед могу сразу сказать, результаты примерно равные: разницы нет не то, что на порядки, но и в разы разницы не наблюдается. Nginx немножко быстрее, и только.

$ ab -c 15 -n 5000 http://127.0.0.1:xxxx/index.html
Total transferred:      93521740000 bytes

YAWS
Time taken for tests:   99.869 seconds
Requests per second:    50.07 [#/sec] (mean)
Time per request:       299.607 [ms] (mean)
Time per request:       19.974 [ms] (mean, across all concurrent requests)
Transfer rate:          914495.83 [Kbytes/sec] received
Percentage of the requests served within a certain time (ms)
  75%    304
  95%    312
  99%    340
 100%    403 (longest request)

NGINX
Time taken for tests:   72.180 seconds
Requests per second:    69.27 [#/sec] (mean)
Time per request:       216.540 [ms] (mean)
Time per request:       14.436 [ms] (mean, across all concurrent requests)
Transfer rate:          1265304.26 [Kbytes/sec] received
Percentage of the requests served within a certain time (ms)
  75%    221
  95%    231
  99%    242
 100%    419 (longest request)
$ ab -c 150 -n 5000 http://127.0.0.1:xxxx/index.html
Total transferred:      93521740000 bytes

YAWS
Time taken for tests:   117.519 seconds
Requests per second:    42.55 [#/sec] (mean)
Time per request:       3525.561 [ms] (mean)
Time per request:       23.504 [ms] (mean, across all concurrent requests)
Transfer rate:          777151.49 [Kbytes/sec] received
Percentage of the requests served within a certain time (ms)
  75%   3840
  95%   3925
  99%   5986
 100%  37249 (longest request)

NGINX
Time taken for tests:   87.284 seconds
Requests per second:    57.28 [#/sec] (mean)
Time per request:       2618.518 [ms] (mean)
Time per request:       17.457 [ms] (mean, across all concurrent requests)
Transfer rate:          1046353.51 [Kbytes/sec] received
Percentage of the requests served within a certain time (ms)
  75%   2658
  95%   2752
  99%   2814
 100%   2816 (longest request)
malbolge ★★
()
Ответ на: комментарий от malbolge

Твой тест - говно. Мой тоже говно, но немного более объективное

это в чем же? В том, что у тебя тест уперся в скорость сети и поэтому разница небольшая получилась?

и, как приятный бонус, ничего не падает.

ну ты запросов побольше сделай, хотя бы столько сколько я и конкурентность.

Хоть немножко уравняем дефолтные настройки:

да че уж, давай сразу nginx на более слабом компе будет запускать.

pi11 ★★★★★
()
Ответ на: комментарий от pi11

Да не бугурть уже так. Решимость переспорить любой ценой, пуская в ход низкий слог о слабых машинах, выдает в тебе не мужа, но юнца.

malbolge ★★
()
Ответ на: комментарий от pi11

...4хкратное преимущество на радость нубам?

Transfer rate: 1539.99 [Kbytes/sec] received
Transfer rate: 5576.83 [Kbytes/sec] received

5576/1530 ~ 4

Да, ты прав как никогда. nginx зело быстрее лучше толще и длиннее чем yaws. На этом дискуссию и закончим.

malbolge ★★
()
Ответ на: комментарий от malbolge

Э, погоди, ты еще говорил про преимущества для динамического контента =)

pi11 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.