-
Notifications
You must be signed in to change notification settings - Fork 10.3k
Is RIO going to be Kestrel's default networking engine? #1903
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
aspnet/KestrelHttpServer#828 Is work that should help us enable that. There are some trade-offs with RIO, so we will probably have people opt in to using RIO and allow developers to configure RIO-specific settings. |
What are the trade-offs with RIO? As far as I've seen in some tests, it works faster and better than plain socket and simple IOCP. We all want people to start talking about ASP.NET Core and .NET core in general. Performance is a great tool to get them started. If RIO still has some pitfalls (which I'm not yet aware of), I think MSFT should concentrate on making it flawless so they could market .NET Core as a fast, reliable, lean and cross platform (also cross ISA) framework. BTW, if you ask developers why they switched to NodeJS (and many have) they will almost automatically shout the "Asynchronous Non Blocking I/O" as if its Node's slogan. Why shouldn't Microsoft attract developers with even a faster, leaner approach? Kestrel can use netmap for Linux and RIO for Windows. |
I'm not an expert on RIO, so the short answer to the new title is that I don't know if RIO will be made the default. We'll be able to make a more informed decision once we build the RIO transport. @mnns Are aware of any other production HTTP server that uses RIO and/or netmap (which seems to be a kernel module you need to manually install on Linux)? If so, that could certainly help our investigation. It's interesting you bring up NodeJS which, as I'm sure you are aware, is what libuv was built for. @benaadams worked on an experimental RIO server a while back that I've taken a quick look at. One big issue seems to be is that every connection needs to have a unique (as in not shared with other concurrent connections) buffer constantly registered. This could lead the RIO server to consume a lot more memory than the equivalent libuv/socket based server given a lot of idle connections. Without knowing ahead of time whether or not a given connection would be saturated or idle, it could be difficult to determine the optimal size of the registered buffer in order not to waste too much memory on idle connections while maintaining perf for active ones. It's entirely possible we could work around the memory usage with some smart heuristics, but I'm not able to commit to making RIO the default networking engine without further investigation. |
@halter73 Yep, NodeJS is using libuv and that's exactly why I think we should make ASP.NET Core better and faster than NodeJS, especially if we have the tools and technology (RIO), as we do right now. Also, like you said, I'm sure that constantly registered connection buffers memory consumption can be easily mitigated with some simple heuristics. I'm no expert on RIO, but I've ran some tests and the numbers are extremely impressive, even unusual for a Windows machine. Imagine the market impact if MSFT would announce a cross platform, cross ISA, modular, easy to deploy, extremely fast web server that utilizes cutting edge networking methodologies, both on Linux and on Windows. Add some PHP/ASP-like simple scriptable HTML web pages and you've got the best server in the market (only then add the bloated MVC overhead as an option, but that's another issue). |
Any thoughts guys? |
The transport refactoring has already happened to a degree https://github.com/aspnet/KestrelHttpServer/tree/dev/src
So RIO would become just another Transport aspnet/KestrelHttpServer#1630 However there are bigger changes for the whole stack that means it will be easier for everyone to take advantage of these changes https://github.com/aspnet/KestrelHttpServer/issues/1980 |
This issue is being closed because it has not been updated in 3 months. We apologize if this causes any inconvenience. We ask that if you are still encountering this issue, please log a new issue with updated information and we will investigate. |
This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its
recipients. This is a temporary error. The following address(es) deferred:
[email protected]
Domain spinthemoose.com has exceeded the max emails per hour (244/200 (122%)) allowed. Message will be reattempted later
…------- This is a copy of the message, including all the headers. ------
Received: from github-smtp2-ext6.iad.github.net ([192.30.252.197]:57380 helo=github-smtp2b-ext-cp1-prd.iad.github.net)
by cp1164.blacksun.ca with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
(Exim 4.89_1)
(envelope-from <[email protected]>)
id 1eVQjW-0000Zk-Lm
for [email protected]; Sat, 30 Dec 2017 17:40:06 -0600
Date: Sat, 30 Dec 2017 15:39:46 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com;
s=pf2014; t=1514677186;
bh=2lPaGbLZA3ngd0g5gg33XgTk8n569OEgx8amgQoMi24=;
h=From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID:
List-Archive:List-Post:List-Unsubscribe:From;
b=ym4ba8HEfhfmGz/pztUqknXqrLA4QF9s+XS1eK7juZXZVTMFLBh6gptgBDo5syut9
tMCwRhu4+pI1eT+uwFjtv/C2dPZFp6FEy5Xixj49inGsQOwDkjVu0Y8didwJdMwlkj
/O9iWoN9q7FuWu1jzzWD9cG+nUy12uVtRRKHNdmk=
From: "ASP.NET Hello Bot" <[email protected]>
Reply-To: aspnet/Home <[email protected]>
To: aspnet/Home <[email protected]>
Cc: Subscribed <[email protected]>
Message-ID: <aspnet/Home/issue/1903/issue_event/[email protected]>
In-Reply-To: <aspnet/Home/issues/[email protected]>
References: <aspnet/Home/issues/[email protected]>
Subject: Re: [aspnet/Home] Is RIO going to be Kestrel's default networking
engine? (#1903)
Mime-Version: 1.0
Content-Type: multipart/alternative;
boundary="--==_mimepart_5a4823c2e5025_1ff23fe9ff896f383731017";
charset=UTF-8
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: aspnet-hello
X-GitHub-Recipient: davidalpert
X-GitHub-Reason: subscribed
List-ID: aspnet/Home <Home.aspnet.github.com>
List-Archive: https://github.com/aspnet/Home
List-Post: <mailto:[email protected]>
List-Unsubscribe: <mailto:unsub+0000a944c0eab05b73d592d4964319ad55043efda09ada1f92cf00000001165fe5c292a169ce0c01b5c9@reply.github.com>,
<https://github.com/notifications/unsubscribe/AACpROC4qvIh3wEf3pcoU2XP-8F_F9Ijks5tFsnCgaJpZM4LmTep>
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: [email protected]
----==_mimepart_5a4823c2e5025_1ff23fe9ff896f383731017
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Closed #1903.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
#1903 (comment)
----==_mimepart_5a4823c2e5025_1ff23fe9ff896f383731017
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
<p>Closed <a href="#1903" class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="201438665" data-permission-text="Issue title is private" data-url="#1903>
<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="#1903 (comment) it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AACpRMzGpRa3wXQu5RiF8zmbaH41T_ltks5tFsnCgaJpZM4LmTep">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/AACpRILMNzywH8JxebVpmSuPgFbiPpdCks5tFsnCgaJpZM4LmTep.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
<link itemprop="url" href="#1903 (comment)>
<meta itemprop="name" content="View Issue"></meta>
</div>
<meta itemprop="description" content="View this Issue on GitHub"></meta>
</div>
<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/aspnet/Home","title":"aspnet/Home","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/aspnet/Home"}},"updates":{"snippets":[{"icon":"DESCRIPTION","message":"Closed #1903."}],"action":{"name":"View Issue","url":"#1903 (comment)>
----==_mimepart_5a4823c2e5025_1ff23fe9ff896f383731017--
|
This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its
recipients. This is a temporary error. The following address(es) deferred:
[email protected]
Domain spinthemoose.com has exceeded the max emails per hour (245/200 (122%)) allowed. Message will be reattempted later
…------- This is a copy of the message, including all the headers. ------
Received: from o1.sgmail.github.com ([192.254.114.176]:7067)
by cp1164.blacksun.ca with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
(Exim 4.89_1)
(envelope-from <[email protected]>)
id 1eVQjY-0000Zl-2B
for [email protected]; Sat, 30 Dec 2017 17:40:08 -0600
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=github.com;
h=from:reply-to:to:cc:in-reply-to:references:subject:mime-version:content-type:content-transfer-encoding:list-id:list-archive:list-post:list-unsubscribe;
s=s20150108; bh=CU3EJPjU7P2Px0Dyv8ZwK0I4W1Q=; b=kliA1e64dBxZ+2q+
d7DNq+vD05QZcx0Wlm8LEJY/J5F+wos+8MZTNjnZ2YHNNkvKTKd/YGsLdglU2BjF
ECSelfvvJ/Kgaxor91B4rC22JTmSnC6HxJV8htRngYrMuIkSv5ukNQiYiwZ3oNRo
DPgRSchmrAY4urquZqSz6Z+aoSY=
Received: by filter0114p1las1.sendgrid.net with SMTP id filter0114p1las1-5707-5A4823C2-28
2017-12-30 23:39:46.962212382 +0000 UTC
Received: from github-smtp2a-ext-cp1-prd.iad.github.net (github-smtp2a-ext-cp1-prd.iad.github.net [192.30.253.16])
by ismtpd0008p1iad1.sendgrid.net (SG) with ESMTP id DPKVoy3nQie5cVf_fxG91Q
for <[email protected]>; Sat, 30 Dec 2017 23:39:46.811 +0000 (UTC)
Date: Sat, 30 Dec 2017 23:39:46 +0000 (UTC)
From: "ASP.NET Hello Bot" <[email protected]>
Reply-To: aspnet/Home <[email protected]>
To: aspnet/Home <[email protected]>
Cc: Subscribed <[email protected]>
Message-ID: <aspnet/Home/issues/1903/[email protected]>
In-Reply-To: <aspnet/Home/issues/[email protected]>
References: <aspnet/Home/issues/[email protected]>
Subject: Re: [aspnet/Home] Is RIO going to be Kestrel's default networking
engine? (#1903)
Mime-Version: 1.0
Content-Type: multipart/alternative;
boundary="--==_mimepart_5a4823c2afbe5_86ca3fa9fc52cf3428208d";
charset=UTF-8
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: aspnet-hello
X-GitHub-Recipient: davidalpert
X-GitHub-Reason: subscribed
List-ID: aspnet/Home <Home.aspnet.github.com>
List-Archive: https://github.com/aspnet/Home
List-Post: <mailto:[email protected]>
List-Unsubscribe: <mailto:unsub+0000a944c0eab05b73d592d4964319ad55043efda09ada1f92cf00000001165fe5c292a169ce0c01b5c9@reply.github.com>,
<https://github.com/notifications/unsubscribe/AACpROC4qvIh3wEf3pcoU2XP-8F_F9Ijks5tFsnCgaJpZM4LmTep>
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: [email protected]
X-SG-EID: rlj3t9ahcX0BZUzAOlajQ3VmBXo43xFJc4M1ImIDJhGAP+VHJvN/jLI2pKB98A2vCBGvWGjfR8pJR/
2J1pPvOco1hcf2oRDmUL+6RSod2eYKCzqcwP7fTYhrNmEcJwAGJdlbFi8VLrT2wVRtHlCBSkdN8deH
1qZSeySndz7dxeo/lvpkphcjWvzijaSNJPMAm/vV8PNYPYrklyvTtq+7yH9xPa8jG/32XwLKexkddj
M=
----==_mimepart_5a4823c2afbe5_86ca3fa9fc52cf3428208d
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
This issue is being closed because it has not been updated in 3 months.
We apologize if this causes any inconvenience. We ask that if you are still encountering this issue, please log a new issue with updated information and we will investigate.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
#1903 (comment)
----==_mimepart_5a4823c2afbe5_86ca3fa9fc52cf3428208d
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<p>This issue is being closed because it has not been updated in 3 months.<=
/p>
<p>We apologize if this causes any inconvenience. We ask that if you are st=
ill encountering this issue, please log a new issue with updated informatio=
n and we will investigate.</p>
<p style=3D"font-size:small;-webkit-text-size-adjust:none;color:#666;">&mda=
sh;<br />You are receiving this because you are subscribed to this thread.<=
br />Reply to this email directly, <a href=3D"https://github.com/aspnet/Hom=
e/issues/1903#issuecomment-354575091">view it on GitHub</a>, or <a href=3D"=
https://github.com/notifications/unsubscribe-auth/AACpRMzGpRa3wXQu5RiF8zmba=
H41T_ltks5tFsnCgaJpZM4LmTep">mute the thread</a>.<img alt=3D"" height=3D"1"=
src=3D"https://github.com/notifications/beacon/AACpRILMNzywH8JxebVpmSuPgFb=
iPpdCks5tFsnCgaJpZM4LmTep.gif" width=3D"1" /></p>
<div itemscope itemtype=3D"http://schema.org/EmailMessage">
<div itemprop=3D"action" itemscope itemtype=3D"http://schema.org/ViewAction=
">
<link itemprop=3D"url" href=3D"#1903
#issuecomment-354575091"></link>
<meta itemprop=3D"name" content=3D"View Issue"></meta>
</div>
<meta itemprop=3D"description" content=3D"View this Issue on GitHub"></meta>
</div>
<script type=3D"application/json" data-scope=3D"inboxmarkup">{"api_version"=
:"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"Gi=
tHub"},"entity":{"external_key":"github/aspnet/Home","title":"aspnet/Home",=
"subtitle":"GitHub repository","main_image_url":"https://cloud.githubuserco=
ntent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png",=
"avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842=
166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in Git=
Hub","url":"https://github.com/aspnet/Home"}},"updates":{"snippets":[{"icon=
":"PERSON","message":"@aspnet-hello in #1903: This issue is being closed be=
cause it has not been updated in 3 months.\r\n\r\nWe apologize if this caus=
es any inconvenience. We ask that if you are still encountering this issue,=
please log a new issue with updated information and we will investigate.\r=
\n"}],"action":{"name":"View Issue","url":"https://github.com/aspnet/Home/i=
ssues/1903#issuecomment-354575091"}}}</script>=
----==_mimepart_5a4823c2afbe5_86ca3fa9fc52cf3428208d--
|
Is RIO going to be integrated into Kestrel anytime soon?
Why shouldn't it be the standard, instead of libuv? I mean, it is faster in most cases... isn't it?
The text was updated successfully, but these errors were encountered: