URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 84057
[ Назад ]

Исходное сообщение
"Puma - новый высокопроизводительный http-сервер для приложен..."

Отправлено opennews , 12-Апр-12 14:03 
Компания Engine Yard, крупнейший хостер web-проектов на языке Ruby, выполняющий работу по сопровождению старых веток Ruby, представила новый открытый проект Puma (http://puma.io/), в рамках которого развивается полностью переработанный форк проекта Mongrel, отличающийся ориентацией на обеспечение максимальной производительности и поддержания обслуживания большого числа параллельных запросов. Несмотря на то, что Puma создан на базе Mongrel, в настоящее время, кроме кода HTTP-парсера, старая кодовая база полностью переписана. Непосредственно разбором протокола занимается написанный на языке Си компонент Ragel, все обрабатываемые запросы помещаются в обособленный пул потоков, что обеспечивает полноценное распараллеливание и задействование всех доступных в системе процессорных ядер. Код проекта распространяется (https://github.com/puma/puma) под лицензией BSD.

Puma может использоваться в роли платформы для развертывания приложений на базе Ruby on Rails и отдельных приложений, использующих интерфейс Rack. Puma  близок по возможностям к Mongrel и Webrick, и может выступать в качестве их прозрачной замены. Поддерживается работа с различными реализациями Ruby, такими как Rubinius (http://rubini.us), JRuby (http://jruby.org/) и MRI.  Для классической реализации MRI, не способной выполнять одновременно несколько потоков из-за наличия глобальной блокировки, реализована поддержка распараллеливания на уровне ввода/вывода. Для Rubinius и JRuby возможно полноценное распараллеливания на уровне нитей.

<center><img src="https://www.opennet.ru/opennews/pics_base/0_1334224630.png" style="border-style: solid; border-color: #606060; border-width: 1px;" title="" border=0></center>


URL: http://puma.io/
Новость: https://www.opennet.ru/opennews/art.shtml?num=33586


Содержание

Сообщения в этом обсуждении
"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Аноним , 12-Апр-12 14:03 
Черт возьми! Оси на графиках надо подписывать, даже если все очевидно.

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Именно , 12-Апр-12 14:10 
Вы не представляете, как сложно нам, дальтоникам, смотреть на такие графики :)

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Не дальтоник , 12-Апр-12 15:08 
Не только вам.

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено ixti , 12-Апр-12 15:36 
На офф сайте график представлен в виде таблички.
Но дизайнерская мысля сделала невозможным его читать не только дальтоникам...
Особенно порадовало цветовое решение для Rainbows, которое как бы намекает "да пофигу на эти результаты" или "попробуй угадай"

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Typhoon , 24-Ноя-14 19:46 
не только дальтоникам,
на черно-белом мониторе не видно

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Дима , 12-Апр-12 15:34 
Y - расход памяти, X - количество запросов.

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Дима , 12-Апр-12 15:35 
> Y - расход памяти, X - количество запросов.

Т.е. Y - число запросов в секунду.


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Vkni , 12-Апр-12 17:54 
>> Y - расход памяти, X - количество запросов.
> Т.е. Y - число запросов в секунду.

Дима, вы что-то не то пишете. Что там за ботва на графике - решительно непонятно.


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Ищавин , 13-Апр-12 02:31 
Y — обработанных запросов в секунду, X — количество потоков.

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Abu , 13-Апр-12 12:54 
=
На графике представлено отношение количества обработанных в секунду запросов к количеству одновременных запросов (больше - лучше); пометка KA обозначает тесты, в которых клиенты использовали keepalive запросы.
=

//КО


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено водитель нло , 12-Апр-12 16:01 
> высокопроизводительный
> Ruby

Разве эти два понятия совместимы?


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено umbr , 12-Апр-12 16:16 
Мацумото давно уже пытается их совместить.

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено abra , 12-Апр-12 17:03 
что-то лишнее

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено northbear , 12-Апр-12 17:16 
Если говорить о поизводительности в разработке, то более чем... А если заказчик не экономит на рефакторинге и планирует как положено жизненный цикл веб-сервиса, то в продакшне тоже обычно непреодолимых проблем не возникает.

RoR и Ruby вместе с ним, как и многие другие инструменты, не универсальны и имеют свои ограничения.

На сегодняшний день, смею думать, что 90 процентов проектов этих ограничений недостигнут никогда...


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Антоним , 12-Апр-12 21:03 
При чем тут производительность разработки?

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Минона , 12-Апр-12 21:47 
> При чем тут производительность разработки?

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


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Аноним , 13-Апр-12 00:49 
>> При чем тут производительность разработки?
> Раз для вас ни при чем, значит вы реальными разработками никогда не
> занимались.

Всем плевать на производительность разработки, когда нужен сервер, выдерживающий высокие нагрузки. Если вы считаете иначе, то вы реальными разработками никогда не занимались.


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Crazy Alex , 13-Апр-12 01:37 
Если приложение не идиоты писали - то скорость языка там не особо критична - 90% запросов будут вырождаться в примитивнейшую сборку заранее закэшированных кусков. 1-2 % - в сборку этих кусков и помещение их в кэш. И остальное - в отдачу "динамики", которая в большинстве случаев будет закэширована на следующих уровнях - reverse proxy/CDN/браузер.

Да, есть ситуации, которые в этот сценарий не укладываются - но их мало, на вышеописанной схеме отлично строятся весьма крупные проекты.


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Crazy Alex , 13-Апр-12 01:40 
Да, забыл добавить, что большая часть запросов, ответ на которые тупо  собирается из кусков, до сервера приложений вообще доходить не должна - отвечать должны всё те же reverse proxy/CDN/браузер

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено northbear , 13-Апр-12 11:13 
Прежде чем говорить о производительности приложения, нужно сначала написать это приложение, и дождаться когда число пользователей и/или данных вырастет на столько, что приложение начнет упираться в ограничения платформы и архитектуры.

Для этого надо еще на этапе разработки предусмотреть механизмы масштабирования. Ну и не ждать когда приложение само уткнется в ограничения и всё начнет падать, а масштабировать по мере роста нагрузки. Это и называется обеспечением жизненного цикла приложения.

Нужда в сервере выдерживающим высокие нагрузки откуда не возмись не появляется. Такие потребности обычно поддерживаются соответствующим баблом и архитектурными решениями.

Странно слушать народ, который говорит о производительности, пытаясь поднять сервис, обслуживающий несколько тысяч запросов в секунду, на "наколенном" сервере на базе целерона. Или что еще круче, на vds'е. Понятно, что такое имеет место быть, но серьезно относиться к этому сложно.


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Аноним , 13-Апр-12 00:56 
>> При чем тут производительность разработки?
> Раз для вас ни при чем, значит вы реальными разработками никогда не
> занимались.

расскажите это разработчикам nginx и апача


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено northbear , 13-Апр-12 11:18 
>> Раз для вас ни при чем, значит вы реальными разработками никогда не
>> занимались.
> расскажите это разработчикам nginx и апача

Вот и расскажите, они вам ответят тоже самое. Вы считаете что Puma, это конкурент nginx'у и apache? Они примерно такие же конкуренты, как карьерные самосвалы типа БелАЗа и Porsche 911...


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено letsmac , 13-Апр-12 09:30 
Всё зависит от прямоты рук программиста. Если писать грамотно - то весьма производительный в нагруженных системах.

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Andrey Mitrofanov , 13-Апр-12 09:56 
>> высокопроизводительный
>> Ruby
> Разве эти два понятия совместимы?

Конечно! Как недавно пояснил Гвидо по поводу аналогичного вопроса, мол, "питон не тормозит, просто переписывайте критические части на непитоне!"

#>занимается написанный на языке Си компонент Ragel


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено f , 13-Апр-12 14:49 
>Конечно! Как недавно пояснил Гвидо по поводу аналогичного вопроса, мол, "питон не тормозит, просто переписывайте критические части на непитоне!"

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


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Andrey Mitrofanov , 13-Апр-12 15:09 
> Код который тормозит не нужно переписывать, достаточно скомпилировать самым обычным gcc.

Ай, великий мастер, питон ты компейлируешь с gcc?! Отсыпь знания ладошку?


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено f , 13-Апр-12 15:24 
Это всегда пожалуйста. Отсыпаю: http://cython.org/

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Andrey Mitrofanov , 13-Апр-12 15:42 
А Гвидо-то не в курсе?!

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено f , 13-Апр-12 15:46 
> А Гвидо-то не в курсе?!

В курсе, в курсе.
Для простых людей задающих такие вопросы, нужны простые ответы.
Python программисты с опытом, все до одного, поверьте, давно в курсе.


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Andrey Mitrofanov , 13-Апр-12 16:04 
>> А Гвидо-то не в курсе?!
> В курсе, в курсе.

Van Rossum: ""It is usually much more effective to take that one piece and replace that one function or module with a little bit of code you wrote in C or C++""...

То есть Великий Гуру втихую _пользует _цитон, а на публику рекламирует С[++]? То есть попросту обвиняешь дяденьку во вранье, да??

> Для простых людей задающих такие вопросы, нужны простые ответы.

Этт Вы про "простое, логичное, но неправильное решение"?

> Python программисты с опытом, все до одного, поверьте, давно в курсе.

Наиболее опытные и пхп компилируют.

Тем не менее Гвидо сказал "replace [..] with [...] code you wrote in in C or C++".

~~_Заменить кодом _написанным на~~. То есть Ваше ""не нужно переписывать, достаточно скомпилировать"" -- есть рекомендация г-ну ван Россуму? И то есть он-таки нуждается в Вашей рекомендации, так как всё-таки не в курсе??


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено f , 13-Апр-12 16:15 
Стабильно код начал транслировать с версии 0.15 (сентябрь 2011), какого года это высказывание?

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено f , 13-Апр-12 18:03 
>>> А Гвидо-то не в курсе?!
>> В курсе, в курсе.
> Van Rossum: ""It is usually much more effective to take that one
> piece and replace that one function or module with a little
> bit of code you wrote in C or C++""...

И что значит эта фраза вырванная из контекста?

> То есть Великий Гуру втихую _пользует _цитон, а на публику рекламирует С[++]?
> То есть попросту обвиняешь дяденьку во вранье, да??

Тебя да. Еще час назад, ты не знал про cython .


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Andrey Mitrofanov , 13-Апр-12 16:20 
>>Гвидо по поводу аналогичного вопроса, мол, "питон не тормозит, просто переписывайте критические части на непитоне!"
>не нужно переписывать, достаточно скомпилировать самым обычным gcc.

Итого (после слива в №32): прямой речи Гвидо не читал, факты-тексты, предже чем пеной брызгать, не проверял, ирония не понимал.  Ма-ла-цца!


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено клевый пыщ , 13-Апр-12 17:58 
>Итого (после слива в №32): прямой речи Гвидо не читал, факты-тексты, предже чем пеной брызгать, не проверял, ирония не понимал.  Ма-ла-цца!

Итого какая разница что когда-то, в каком-то году сказал Гвидо .
Сходи на сайт там документация, примеры, практика, можешь проверить.

Зачем спорить с пеной у рта, в теме в которой нисколько не рубишь?


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено f , 13-Апр-12 18:16 
> Итого (после слива в №32):

В чём состоял "слив"?


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Andrey Mitrofanov , 13-Апр-12 16:35 
>> создан на базе Mongrel, в настоящее время, кроме кода HTTP-парсера, старая кодовая база полностью переписана.

""What I notice is that my peers are progressing to more and more complicated and convoluted designs. They are impressed with the flashiest APIs, the biggest buzzwords, and the most intricate of useless features.

""They aren’t a mental challenge to understand anymore, they are just irritating. I’ll pick apart the flashy crap, boil down the technology to its essence and then come up with a much simpler design for the task at hand almost every time.

|*)))


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Andrey Mitrofanov , 13-Апр-12 16:40 
А чего, никого не смущет, что эта самая "Пума (_16_:16) КА" типо опережает отсталых конкурентов вида "*** (_1_:16) {,KA}" _почти в 16 раз?

К.О. для толстых и неповоротливах не пояснит физ.смысл этих "(n:M)"?


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Aesthetus Animus , 13-Апр-12 20:51 
Объясните мне, идиоту... Зачем этот сервер нужен, неужели web-проекты на Ruby не дружат с обычным nginx или Apache?

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Аноним , 13-Апр-12 21:23 
Можно, конечно, использовать обычный FastCGI, но у него есть Фатальный Недостаток.

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Aesthetus Animus , 13-Апр-12 21:38 
Какой же? Он имеет место быть только в связке с Ruby?

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Аноинм , 14-Апр-12 00:42 
Он просто работает, для креативных рубистов это слишком скучно.

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено gag , 14-Апр-12 11:01 
>Он просто работает, для креативных рубистов это слишком скучно.

Сравнить скорость работы слабо?


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Аноинм , 14-Апр-12 14:15 
Покажи хоть одно приложение на рельсах, для которого веб-сервер был бы узким местом.

"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено Аноним , 15-Апр-12 16:05 
>Покажи хоть одно приложение на рельсах, для которого веб-сервер был бы узким местом.

Т.е. разницу между xCGI и сервером не освоил? Сей сервер можно сравнивать fastcgi и тому подобное. Разработан хостером рельсов, цель повышение производительности при уменьшение ресурсов и у них это получилось.


"Puma - новый высокопроизводительный http-сервер для приложен..."
Отправлено gag , 14-Апр-12 10:52 
Puma может использоваться в роли платформы для развертывания приложений на базе Ruby on Rails и отдельных приложений, использующих интерфейс Rack.