Re: [hybi] Background info: Properties of sendfile()

Roberto Peon <fenix@google.com> Fri, 06 August 2010 01:47 UTC

Return-Path: <fenix@google.com>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 591EF3A67E2 for <hybi@core3.amsl.com>; Thu, 5 Aug 2010 18:47:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.843
X-Spam-Level:
X-Spam-Status: No, score=-101.843 tagged_above=-999 required=5 tests=[AWL=0.133, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1y++0Zvv1RL2 for <hybi@core3.amsl.com>; Thu, 5 Aug 2010 18:47:21 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [74.125.121.35]) by core3.amsl.com (Postfix) with ESMTP id D14833A66B4 for <hybi@ietf.org>; Thu, 5 Aug 2010 18:47:20 -0700 (PDT)
Received: from kpbe14.cbf.corp.google.com (kpbe14.cbf.corp.google.com [172.25.105.78]) by smtp-out.google.com with ESMTP id o761lonl030722 for <hybi@ietf.org>; Thu, 5 Aug 2010 18:47:50 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1281059270; bh=wXa4jJdgNgWQhITEFzaPmu1uy80=; h=MIME-Version:In-Reply-To:References:Date:Message-ID:Subject:From: To:Cc:Content-Type; b=hlIT//qxGG43NCkkOgXWYEN8Dsl7GRXhfvUox7u3SMKxTh2TekHiKHrUcj/aUZSy3 P0ZXVljxsVrK6w3YOeNHQ==
DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=mime-version:in-reply-to:references:date:message-id:subject:from:to: cc:content-type:x-system-of-record; b=Dx2JA6Loimteguy1HwqhOAi0MvzV3TX2mKFSU3nQKZIs3uQsO/RrV0x4+PDvHLLAo X4jVThvgccqQLM3DqfNIw==
Received: from gyd8 (gyd8.prod.google.com [10.243.49.200]) by kpbe14.cbf.corp.google.com with ESMTP id o761liio022011 for <hybi@ietf.org>; Thu, 5 Aug 2010 18:47:49 -0700
Received: by gyd8 with SMTP id 8so2880979gyd.6 for <hybi@ietf.org>; Thu, 05 Aug 2010 18:47:48 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.150.75.17 with SMTP id x17mr13072311yba.279.1281059268769; Thu, 05 Aug 2010 18:47:48 -0700 (PDT)
Received: by 10.150.59.4 with HTTP; Thu, 5 Aug 2010 18:47:48 -0700 (PDT)
In-Reply-To: <20100806012845.GI27827@shareable.org>
References: <71BCE4BF-D3F6-4F94-BE76-306BDF6A2E67@apple.com> <Pine.LNX.4.64.1008051930160.5947@ps20323.dreamhostps.com> <4C5B1695.6070704@gmx.de> <F8E2F702-9F74-4316-B3B2-D5A731409ABF@apple.com> <4C5B2029.90403@gmx.de> <AANLkTim1WeCRfcPxXUNQcVhb4+t_TtDQDv2bXaxOQ=bk@mail.gmail.com> <01098AD0-FBF4-4A61-B565-947C95722BAA@apple.com> <AANLkTi=qQSND5BvUP5+P=wJ7E8SG6NncGZH8U8+VYwZ0@mail.gmail.com> <20100806004907.GF27827@shareable.org> <C0FC87B7-C51C-4B36-BC16-DBDB0B00A20F@gbiv.com> <20100806012845.GI27827@shareable.org>
Date: Thu, 05 Aug 2010 18:47:48 -0700
Message-ID: <AANLkTimuvuj87qwQi_1Gjg47-gGrCsDCQ5TDd5zvOw1N@mail.gmail.com>
From: Roberto Peon <fenix@google.com>
To: Jamie Lokier <jamie@shareable.org>
Content-Type: multipart/alternative; boundary="000e0cd48988a6ba3d048d1ddafe"
X-System-Of-Record: true
Cc: "Roy T. Fielding" <fielding@gbiv.com>, "hybi@ietf.org" <hybi@ietf.org>
Subject: Re: [hybi] Background info: Properties of sendfile()
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 06 Aug 2010 01:47:22 -0000

Thus my statement of "theoretical" benefits.
I've not seen the benefits of either splice or sendfile yet.
-=R


On Thu, Aug 5, 2010 at 6:28 PM, Jamie Lokier <jamie@shareable.org> wrote:

> Roy T. Fielding wrote:
> > On Aug 5, 2010, at 5:49 PM, Jamie Lokier wrote:
> >
> > > It's time to explain sendfile() better.
> > >
> > > 0. Nearly all OSes used for web serving have something called
> > >   sendfile() or under a different name.  It has become a standard
> > >   method used in high performance static servers, and is beginning to
> > >   be used in dynamic servers that do smart caching.  It is given an
> > >   open file handle and range, and writes content of that file to a
> > >   TCP socket as efficiently as possible.  Some OSes allow contents of
> > >   process memory to be sent as well.
> >
> > Unfortunately, you should also be aware that nearly all OSes have
> > severe kernel bugs in their implementations of sendfile and seem
> > to be getting progressively worse over time, to the point where
> > Apache httpd needs to disable it by default.  I don't know why.
>
> Thanks.  Ugh.  (I would like to know more, if you can point me at the
> details.)
>
> For WebSocket, details of specific current implementations aren't so
> important, as acknowledging the principles that hardware may continue
> to imply for some years, in those rare cases of OSes / kernels that
> aren't too buggy to take advantage :-)
>
> I.e. it just means "don't mandate that chunks must be small".
> It's not asking much.
>
> Who knows, we might end up with WebSocket multiplexing implemented in
> a kernel, which is likely to avoid sendfile() bugs but still be
> subject to NIC constraints.
>
> -- Jamie
> _______________________________________________
> hybi mailing list
> hybi@ietf.org
> https://www.ietf.org/mailman/listinfo/hybi
>