Re[22]: Erlang avalanche
От: Sinclair Россия https://github.com/evilguest/
Дата: 15.12.06 04:45
Оценка: 1 (1)
Здравствуйте, n0name2, Вы писали:
N>А чем он еще занимается? Ты базу имеешь в виду? Это тоже можно сделать в NIO стиле вполне, но, это не актуально т.к. вся ценность NIO в том, чтобы работать с большим кол-вом клиентов с низкой активностью. Кстати, IIS использует overlapped или нет?
IIS вообще штука очень сложная. В шестерке примерно такая схема работы:
tcpip.sys -> http.sys -> w3wp.exe -> ISAPIx.dll 
                      -> file system

Соответственно, должна быть какая-то очередь в кернел моде (хотя, скорее всего, она сильно ограничена). Насколько я знаю, кернел-моде доступ к файлухе в IIS делается вполне overlapped способом — для статики вообще потребление RAM и CPU близко к нулю. А для динамики решение о диспетчеризации принимает соответствующее расширение ISAPI. В частности, ASP.NET организует свою очередь реквестов и использует для ее разгребания пул потоков вколичестве 25*CpuCount.
N>Вообще, я не очень представляю себе современный web сервер с классической моделью 1 клиент : 1 поток OS (или поток из пула).
И правильно делаешь. На самом деле современный web server, имхо, начнет загибаться значительно раньше, чем будет достигнуто системное ограничение по количеству тредов. Просто потому, что tcpip сокеты достаточно дороги, а каждый запрос, стоящий в очереди — это еще и открытое HTTP соединение.

F>> Ну хорошо, но как связана интерпретакция с throughput-ом? Всё зависит от того что интерпретируем. Короче меряемся неизвестно чем, хотя бы попугаи были. Так что бестолковый разговор.

N>Ты всерьез веришь что Erlang сможет построить динамическую веб страницу быстрее Java или .NET?
Как уже было замечено — смотря какую страницу. Я сходу не могу придумать пример, но думаю, что эффективная диспетчеризация может дать выигрышь на некоторых классах задач. Хотя скорее можно ожидать не большей скорости вывода каждой страницы, а увеличения числа обслуженных страниц.
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[25]: Erlang avalanche
От: Sinclair Россия https://github.com/evilguest/
Дата: 15.12.06 04:45
Оценка: 15 (1)
Здравствуйте, Mamut, Вы писали:
M>Кстати, вопрос. Что понимать под динамической страницей? Если это просто страница с расширением .erl, .yaws, .jsp и т.д. и статической информацией в них, то, боюсь, Erlang может здесь порвать всех согласно тесту Apache vs. Yaws
Боюсь что в таком случае порвет он только поджилки. Потому, что для статики с расширением .jsp будет сформирован готовый респонс, который ляжет в серверный кэш, и всё, что будет после этого мерить тест — скорость доступа web-сервера к JVM. А если у статики расширение .aspx, то я вообще не завидую эрлангу, т.к. она ляжет в кэш режима ядра и сервер будет обслуживать клиентов вообще никогда не переключаясь в user mode.
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[23]: Erlang avalanche
От: Cyberax Марс  
Дата: 15.12.06 05:48
Оценка:
Sinclair wrote:
> Просто потому, что tcpip сокеты достаточно дороги, а каждый
> запрос, стоящий в очереди — это еще и открытое HTTP соединение.
Мне вот тут рассказали, что на одном сервере с хорошими серверными
картами (с TCP offloading engine) спокойно держится 30000 соединений (у
них проблема — не хватает номеров портов!).

Сервер, кстати, на чистом С.

> Как уже было замечено — смотря какую страницу. Я сходу не могу придумать

> пример, но думаю, что эффективная диспетчеризация /может/ дать выигрышь
> на некоторых классах задач. Хотя скорее можно ожидать не большей
> скорости вывода каждой страницы, а увеличения числа обслуженных страниц.
ИМХО, подход Эрланга к организации мультитредовых серверных приложений —
самый верный. То есть легкие потоки + умный планировщик в N копиях по
числу процессоров. Просто мне доводилось писать в автоматном стиле,
который, фактически и является единственным разумным вариантом для
легких потоков — и больше писать автоматы я не хочу.

Кстати, я тут узнал (после чтения исходников BEAM), что scheduler в
Erlang знает об affinity для легких потоков, так что может посылать
сообщения в поток на том же процессоре даже без блокировок. То есть, по
сути, посылка сообщения превращается в аналог вызова функции.

Кстати, никто не мешает эту же фичу реализовать в любом другом языке с
легкими потоками (даже если его имя будет начинаться на N).
Posted via RSDN NNTP Server 2.1 beta
Sapienti sat!
Re[26]: Erlang avalanche
От: Cyberax Марс  
Дата: 15.12.06 05:51
Оценка: 15 (1) :)
Sinclair wrote:
> Боюсь что в таком случае порвет он только поджилки. Потому, что для
> статики с расширением .jsp будет сформирован готовый респонс, который
> ляжет в серверный кэш, и всё, что будет после этого мерить тест —
> скорость доступа web-сервера к JVM. А если у статики расширение .aspx,
> то я вообще не завидую эрлангу, т.к. она ляжет в кэш режима ядра и
> сервер будет обслуживать клиентов вообще никогда не переключаясь в user
> mode.
Добавить в планы: портировать Erlang в режим ядра.

Кстати, насколько я помню, у Resin'а (еще в 2001-2002) для Java был
специальный ядерный модуль как раз для кэширования.

Кстати, если кому интересно, у того же Резина есть Quercus — реализация
PHP на Java под которой работает уже достаточно много программ (phpBB,
myphpadmin, Drupal).
Posted via RSDN NNTP Server 2.1 beta
Sapienti sat!
Re[26]: Erlang avalanche
От: Mamut Швеция http://dmitriid.com
Дата: 15.12.06 07:38
Оценка:
M>>Кстати, вопрос. Что понимать под динамической страницей? Если это просто страница с расширением .erl, .yaws, .jsp и т.д. и статической информацией в них, то, боюсь, Erlang может здесь порвать всех согласно тесту Apache vs. Yaws

N>Java + NIO это совсем не Apache, на 100к юзеров оно не загнется. Думаю, слабо будет порвать Особенно на SMP. Если ты готов сделать benchmark для Yaws, то, можем попробовать.



Я все никак Эрланг выучит не могу, а тут бенчмарки Как-нибудь потом

M>>Но вот если это уже будут данные, которые неизвестно откуда берутся (например, из базы), то тут уже все не так однозначно. Потому что сформулировать задачу для такого теста будет очень сложно (потому что неизвестно, согласно каким критериям и что оценивать )


N>Вообще, есть нормальные драйверы под Erlang для Oracle допусим?


Увы. Скорее всего нет. Разве что где-нибудь у кого-нибудь разработаны для своих собственных нужд...


dmitriid.comGitHubLinkedIn
Re[7]: Erlang avalanche
От: Курилка Россия http://kirya.narod.ru/
Дата: 15.12.06 07:47
Оценка: 1 (1) +1
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

LCR>Курилка,


LCR>>>Идея неплохая, но здесь на мой взгляд нужно либо ничего, либо нужна поддержка ИДЕ в виде комплита. А так, натравливать тулзу на выстраданные потом и кровью исходники — страшно, даже несмотря на то, что тулзу делал Тобиас.


К>>В смысле "страшно"?


LCR>Тулза вставляет гварды — ограничения на типы — в исходник. Производится глобальная модификация исходника. А если мой файл некорректный (ну там случайно скобку стёр, или вместо тупла список вколотил)? Лучше пусть это делает hipe. Ну или на крайний случай руками.


Ты чего-то путаешь:

The basic usage is:
> typer my module.erl
which will read the file and create a new file called my module.ann,
located in the same directory as the original file, that contains the
type signatures for all functions in my module.erl.


Ничего с исходным кодом там не делается
Re[27]: Erlang avalanche
От: Курилка Россия http://kirya.narod.ru/
Дата: 15.12.06 08:50
Оценка:
Здравствуйте, Mamut, Вы писали:

N>>Вообще, есть нормальные драйверы под Erlang для Oracle допусим?


M>Увы. Скорее всего нет. Разве что где-нибудь у кого-нибудь разработаны для своих собственных нужд...


По идее ODBC драйвера вроде есть, но дело-то в том, что ну для задач Эрланга Оракл особо не нужен, мнезии хватает, хотя иногда люди говорят, что базы получаются большие и перелизают за ограничения на объём, что есть в мнезии.
Re[27]: Erlang avalanche
От: Sinclair Россия https://github.com/evilguest/
Дата: 15.12.06 09:59
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Добавить в планы: портировать Erlang в режим ядра.


Я думаю, что если бы дело обстояло так просто, то в режим ядра портировали бы вообще всё.
C>Кстати, насколько я помню, у Resin'а (еще в 2001-2002) для Java был
C>специальный ядерный модуль как раз для кэширования.
Гм. Про это я ничего не знаю. Знаю только, что сам IIS начал работать в режиме ядра только в 6й версии. Это в каком году было?
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[28]: Erlang avalanche
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 15.12.06 10:22
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Гм. Про это я ничего не знаю. Знаю только, что сам IIS начал работать в режиме ядра только в 6й версии. Это в каком году было?


Что интересно, когда в линуксе появился ядерный модуль для поддержки http все ржали — апач в ядро и т.д. Модуль, afaik, из линуха давно убрали, но по этому пути решили в MS пойти. Ждём пока уберут?
http://www.smalltalk.ru | << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[8]: Erlang avalanche
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 15.12.06 11:06
Оценка:
Курилка,

К>Ничего с исходным кодом там не делается


Ой...
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[9]: Erlang avalanche
От: Курилка Россия http://kirya.narod.ru/
Дата: 15.12.06 11:13
Оценка:
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

LCR>Курилка,


К>>Ничего с исходным кодом там не делается


LCR>Ой...


Правда я так и недопонял, как это дело применять практически
Ну будут аннотации, их можно посмотреть, а что дальше...
Re[29]: Erlang avalanche
От: Sinclair Россия https://github.com/evilguest/
Дата: 15.12.06 12:37
Оценка:
Здравствуйте, Andrei N.Sobchuck, Вы писали:
ANS>Что интересно, когда в линуксе появился ядерный модуль для поддержки http все ржали — апач в ядро и т.д.
А кто, собственно, ржал?
ANS>Модуль, afaik, из линуха давно убрали,
afaik, он на месте.
ANS>но по этому пути решили в MS пойти. Ждём пока уберут?
Очень я сомневаюсь, что уберут. Производительность уж очень у него хорошо выглядит.
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[10]: Erlang avalanche
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 15.12.06 13:15
Оценка:
Курилка,

К>Правда я так и недопонял, как это дело применять практически

К>Ну будут аннотации, их можно посмотреть, а что дальше...

А, ну это то как раз не проблема — это добровольная помощь hipe-у, чтобы он при компиляции проверки на типы повыкидывал.
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[28]: Erlang avalanche
От: Cyberax Марс  
Дата: 15.12.06 19:36
Оценка:
Sinclair wrote:
> C>Добавить в планы: портировать Erlang в режим ядра.
> Я думаю, что если бы дело обстояло так просто, то в режим ядра
> портировали бы вообще всё.
Я просто думаю, что это никому особо не нужно. Ну получим ускорение раза
в 2 для редких частных случаев, но при этом усложнится вся система и
будет уменьшена надежность.

> C>Кстати, насколько я помню, у Resin'а (еще в 2001-2002) для Java был

> C>специальный ядерный модуль как раз для кэширования.
> Гм. Про это я ничего не знаю. Знаю только, что сам IIS начал работать в
> режиме ядра только в 6й версии. Это в каком году было?
Точно позже.

Вот нашел по этому доку: http://www.systemvikar.biz/java_tut/hardcore.xtp
Posted via RSDN NNTP Server 2.1 beta
Sapienti sat!
Re[28]: Erlang avalanche
От: Mamut Швеция http://dmitriid.com
Дата: 16.12.06 09:53
Оценка:
N>>>Вообще, есть нормальные драйверы под Erlang для Oracle допусим?

M>>Увы. Скорее всего нет. Разве что где-нибудь у кого-нибудь разработаны для своих собственных нужд...


К>По идее ODBC драйвера вроде есть, но дело-то в том, что ну для задач Эрланга Оракл особо не нужен, мнезии хватает, хотя иногда люди говорят, что базы получаются большие и перелизают за ограничения на объём, что есть в мнезии.


Вообще предлагают испольщовать MySQL, а на Mnesia реализовать для него кэш


dmitriid.comGitHubLinkedIn
Re[30]: Erlang avalanche
От: n0name2  
Дата: 16.12.06 11:52
Оценка: :)
Здравствуйте, Sinclair, Вы писали:

ANS>>Модуль, afaik, из линуха давно убрали,

S>afaik, он на месте.
ANS>>но по этому пути решили в MS пойти. Ждём пока уберут?
S>Очень я сомневаюсь, что уберут. Производительность уж очень у него хорошо выглядит.

как показывают независимые тесты, ничего там сверхестественного нет. см здесь (Greg — сотридник MS, Luis — адерт Резины).

а по чистому throughput на статическом контенте конечно IIS вообще не решение по сравнению с lighthttpd.
Re[31]: Erlang avalanche
От: Sinclair Россия https://github.com/evilguest/
Дата: 18.12.06 03:43
Оценка:
Здравствуйте, n0name2, Вы писали:

N>как показывают независимые тесты, ничего там сверхестественного нет. см здесь (Greg — сотридник MS, Luis — адерт Резины).

Ниче не понял. А где там собственно про сервинг статики и кернел моде? Или ты отвечаешь, не читая? Напомню, что я утверждал, что сомневаюсь в перспективе "убрать" кернел моде из IIS.
N>а по чистому throughput на статическом контенте конечно IIS вообще не решение по сравнению с lighthttpd.
Интересное утверждение. Оно базируется на религиозном экстазе или эмпирическом опыте?
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[29]: Erlang avalanche
От: Sinclair Россия https://github.com/evilguest/
Дата: 18.12.06 03:43
Оценка:
Здравствуйте, Cyberax, Вы писали:
C>Я просто думаю, что это никому особо не нужно. Ну получим ускорение раза
C>в 2 для редких частных случаев, но при этом усложнится вся система и
C>будет уменьшена надежность.
А лично я думаю, что сделать это крайне сложно. В режиме ядра слишком много ограничений, чтобы можно было безболезненно исполнять произвольное приложение. Выигрыш в два раза, кстати, это очень дофига. А для некоторых частных случаев можно было бы и больший получить.

C>Вот нашел по этому доку: http://www.systemvikar.biz/java_tut/hardcore.xtp

А, не, это малополезная штука. Это всего лишь лоадбалансер, который форвардит запросы в JVM, работающие естественно в user mode. В принципе, то же самое делает http.sys.
То, что делает http.sys полезным — это его поддержка кэша и умение работать с файлухой напрямую. Выигрышь на динамических запросах по сравнению с "обычным" IIS практически незаметен.
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[29]: Erlang avalanche
От: Курилка Россия http://kirya.narod.ru/
Дата: 18.12.06 08:04
Оценка:
Здравствуйте, Mamut, Вы писали:

N>>>>Вообще, есть нормальные драйверы под Erlang для Oracle допусим?


M>>>Увы. Скорее всего нет. Разве что где-нибудь у кого-нибудь разработаны для своих собственных нужд...


К>>По идее ODBC драйвера вроде есть, но дело-то в том, что ну для задач Эрланга Оракл особо не нужен, мнезии хватает, хотя иногда люди говорят, что базы получаются большие и перелизают за ограничения на объём, что есть в мнезии.


M>Вообще предлагают испольщовать MySQL, а на Mnesia реализовать для него кэш


Вот мне непонятно почему мускул, а тот же постгрес не пользуется популярностью у эрлангеров.
Просто вот слышал не раз факты, что переводят терабайтные базки на постгрес (вон Сони засветилась в этом, допустим, правда линки под рукой нету) с оракла, а вот про MySQL такого не припомню
Re[32]: Erlang avalanche
От: n0name2  
Дата: 18.12.06 08:40
Оценка:
Здравствуйте, Sinclair, Вы писали:

N>>как показывают независимые тесты, ничего там сверхестественного нет. см здесь (Greg — сотридник MS, Luis — адерт Резины).

S>Ниче не понял. А где там собственно про сервинг статики и кернел моде? Или ты отвечаешь, не читая? Напомню, что я утверждал, что сомневаюсь в перспективе "убрать" кернел моде из IIS.

Нет, я не против kernel mode, просто ничего особенного на динамическом контенте из себя IIS не представляет.

N>>а по чистому throughput на статическом контенте конечно IIS вообще не решение по сравнению с lighthttpd.

S>Интересное утверждение. Оно базируется на религиозном экстазе или эмпирическом опыте?

Нет, на тестах здесь и здесь
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.