LINUX.ORG.RU

Команда ASP.NET Core смогла добиться обработки более миллиона запросов в секунду

 


2

3

Команды ASP.NET Core и .NET Core смогли добиться обработки 1.15 миллионов запросов в секунду.

Повышение производительности - 2300% относительно ASP.NET 4.6.

Стоит отметить, что .NET Core сейчас является проектом с открытым исходным кодом под лицензией MIT.

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

Ответ на: комментарий от Deleted

Чувак не так понял. Они не винду в докере будут поддерживать и развивать, а, наоборот, докер в винде. Чтобы богатые ленивые буратино покупали у них в ажуре сервера с 24 гигами и крутили (sic!) под windows гипервизором (читай управляли мышкой) ядро линукс и в нём докер, ну а в докере уже работала бы какая-нить node.js или openjre 8 с лямбдами :) а денежки капали бы и за лицуху виндосервера от админов в кошелёк майков и ажуре-владельцам от хомичков, которые мышкой буду запускать докер контейнеры в веб-панельке. Для этого-то и весь пиар. Вот такой вот каппитальзЪм!

menangen ★★★★★ ()
Последнее исправление: menangen (всего исправлений: 1)
Ответ на: комментарий от weare

Х знает. Я тут наговнокодил на 560к RPS на C++. Можно дальше оптимиздить.

Все эти сравнения не имеют смысла, пока не будет предоставлено условий для воспроизиводимости. Что за процессор, что за сеть, что за запросы, что за настройки системы и так далее.

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

WSAEnumNetworkEvents (аналог epoll)

ну вы сравнили. WSAWaitForMultipleEvents могёт только 64 WSAEvents за вызов. А WSAAsyncSelect требует хендл окна (я тут не профи) и объявлена deprecated.

h4tr3d ★★★★★ ()

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

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

Какой там девиз у СЛОРа был? Закапываем вместе?)

Упарываемся вместе.

Jack-Laphroaig ()
Ответ на: комментарий от pacify

TCP_CORK и TCP_NODELAY в idle (я на libev сделал). Почитай про этот трюк. Хотя без файл-трансфера TCP_CORK не особо нужен. Включение (точнее попытка) TCP_NODELAY сбросит неполные буфера, поэтому имеет смысл делать после последнего трансфера. Вот интересное чтиво от, как не удивительно, Сысоева: http://mailman.nginx.org/pipermail/nginx-ru/2005-December/003981.html

И да, я малость обманул: 540k RPS (открыл заметки) на 4х потоках Keep-alive при 100 одновременных коннектах (Core i7 3940XM). При 1k одновременных снизилось до 500k RPS. При 10k одновременных появились таймауты и снизилось до 316k RPS. Плюс тестировалось на локалхосте, так что измеритель тоже влиял. Но не было возможности по сети погонять.

Запрос был простым GET, ответ из нескольких заголовков и тела «42» :)

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

ну вы сравнили. WSAWaitForMultipleEvents могёт только 64 WSAEvents за вызов.

Да да, я вкурсе всех этих ограничений. Говорю же пробовал выжать все потому пробовал все доступные API. Вот конкретно это API я уже не назову удобным и хорошим по сравнению с TransmitFile или epoll.

TCP_CORK и TCP_NODELAY в idle (я на libev сделал). Почитай про этот трюк.

Про TCP_NODELAY я уже написал выше. TCP_CORK я тоже использую для оптимизации отсылки больших блоков в write бэкэнде, но к нашему тесткейсу они не имеют отношения. Про сеть вот о чем и речь что с сетью и без разница большая.

Вообще даже если предположить что они реально получили больше ляма на сети благодаря мощному железу, ничего революционного в этом не видно. Потому что сокетные тесты hello world все еще в пользу линукса. Если они дейстывительно убрали весь или почти весь оверхед инициализации запроса - для хайлода это требование, а не фича и такого можно достичь много где, даже на PHP (но в нем надо следить за утечками если запрос не переинициализировать). А ведь на asp4 оверхед был, я когда то его даже профайлил, увидел что он на каждый запрос новый объект создает, который внутри еще много всякого барахла делает, у меня волосы встали дыбом, я все это закрыл и для хайлода asp никогда не использовал, тогда как самостоятельно C# прикрутить вполне можно. Так что учитывая манеру как все это подается я вижу это как откровенный пиар (хотя если оверхед инициализации действительно убран это хорошо, но я сомневаюсь что в сравнении с другими решениями он все еще мал).

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

C10k_problem

И чо? Не видим разницы между соединением и обработкой запроса?

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

Про TCP_NODELAY я уже написал выше.

я видел. Отвечал по другой ветке дискуссии.

TCP_CORK я тоже использую для оптимизации отсылки больших блоков в write бэкэнде, но к нашему тесткейсу они не имеют отношения.

в тестах на RPS эта опция да, роли не играет никакой. А вот keep-alive или прочие оптимизации, типа pipelining очень большую роль играет. Создание объектов в куче, другие аллокации, копирования и так далее - соответственно сказываются негативно.

Неплохой тестовый сервер, на котором можно всякие интересности погонять: https://github.com/haywire/haywire - девка шарит :)

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

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

Legioner ★★★★★ ()

Ой вот терь их наверно купит микрофэйл или бобёрдобро инк..

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

А МС серьёзно за сервера взялась. Какой там девиз у СЛОРа был? Закапываем вместе?)

MS уже вот лет *дцать берется думает что за сервера, а по факту за что-то другое. Но слор забавный :D я вчера наткнулся на него только, до этого не знал...

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

хули не пересекаются. Я их обе использую.

Я тоже.
Но не для одних и тех-же целей.

IMHO целевая аудитория все-же отличается.

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

СЛОР слился, а идейный вдохновитель посмел пописывать антиМСовские посты на своем сайте

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от EnterpriseMobility

ОК, а если на фирме юзается стек ASP.NET (C#) + JS (Node.js) - то что это такое?

Если для одних и тех-же целей - извращение X_X

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

Не понял какова суть ваших претензий? Веб серверы обычно исрпользуют TCP сокеты, не UDP, так что в данном контексте без TCP=без сети. Кроме этого вторую фразу можно понять как...

Там абсолютно ясно и однозначно написано, что они тестируют стек ниже уровня HTTP логики, это все обёртки над TCP, сам TCP и прочая сетевая подсистема. Никак иначе написанное понять нелья.

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

а что такое - для разных целей? Какие цели есть у ASP.NET, а какие и ноды?

На ноде пишутся дополнительные сервисы, которые из ASP.NET вызываются?

И все?

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

а что такое - для разных целей?

В одной конторе ОБЫЧНО(не всегда) для Prod, используют одну технологию.

К проимеру прототип на Node и прод на Node | .Net но Node & .Net

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

[режим наброса] а почему тогда почти все вакансии на Ноде идут бок-о-бок со знаниями C#/ASP.NET.

И почему тогда почти все юзающие ноду отвечающие на вопросы по ноде на стек-оверфлов - специалисты по ASP.NET?

Не похаписты, не рубисты, не джангисты, а именно ASP-дот-нетчики? [/режим наброса]

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

а почему тогда почти все вакансии на Ноде идут бок-о-бок со знаниями C#/ASP.NET.

Птому, что без NodeJS тяжело разрабатывать современные SPA приложения

Не похаписты, не рубисты, не джангисты, а именно ASP-дот-нетчики?

Ну как минимум один отвечающий на вопросы o Node, Java - специалист - это я. Уверен и других много.

grim ★★☆☆ ()

Им бы ещё потребление памяти оптимизировать. Абсолютно голый «Hello World» отжирает 35МБ прям со старта. С MVC уже 60МБ.

Да и json для конфигурационных файлов ещё тот бред. Элементарно добавить комментарий невозможно.

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

Откровенный пиар, никаких технических подробностей.

Сразу вспомнил, как в начале тысячелетия в универе представители Microsoft пиарили новую платформу с названием .NET методом показывания видео, где обрабатывавшие овер9к запросов в секунду сервера вживую заменялись в стойке мускулистым мужиком, с автоматическим переносом сессий. Насколько помню, открыть новый курс им так и не дали.

liberte ()

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

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

Так это по-божески. python -m SimpleHTTPServer съедает 45 метров, пустая Java скушает полтиник, непустая — 100-200 МБ.

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