From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: 01/01: nginx: berlin: Disable narinfo caching altogether. Date: Fri, 22 Jun 2018 00:06:25 +0200 Message-ID: <878t776bha.fsf@gnu.org> References: <20180621094438.32617.70405@vcs0.savannah.gnu.org> <20180621094439.636F520498@vcs0.savannah.gnu.org> <87sh5f9a6c.fsf@netris.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:49911) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fW7im-0002IX-K2 for guix-devel@gnu.org; Thu, 21 Jun 2018 18:06:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fW7il-00030d-Bp for guix-devel@gnu.org; Thu, 21 Jun 2018 18:06:28 -0400 In-Reply-To: <87sh5f9a6c.fsf@netris.org> (Mark H. Weaver's message of "Thu, 21 Jun 2018 16:06:19 -0400") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Mark H Weaver Cc: guix-devel@gnu.org Hello Mark, Mark H Weaver skribis: > ludo@gnu.org (Ludovic Court=C3=A8s) writes: > >> civodul pushed a commit to branch master >> in repository maintenance. >> >> commit 8379ba4119e51151d93589a6ef57cb159d94e9f2 >> Author: Ludovic Court=C3=A8s >> Date: Thu Jun 21 11:41:06 2018 +0200 >> >> nginx: berlin: Disable narinfo caching altogether. >>=20=20=20=20=20 >> This is a followup to ebbe4c7f402b6d9cf9c6c2ecf120f49697ab2c49. >>=20=20=20=20=20 >> * hydra/nginx/berlin-locations.conf (.narinfo): Disable caching. >> * hydra/nginx/berlin.conf: Remove 'proxy_cache_path' directive >> for narinfos. > > What's the rationale for this change? >From commit ebbe4c7f402b6d9cf9c6c2ecf120f49697ab2c49: Somehow nginx appeared to be caching narinfos for longer than needed, which defeated the atime-based cache eviction strategy of 'guix publish'. In this case, I noticed on berlin that nginx was caching 404s for narinfos longer than expected, for reasons I could not elucidate. Plus there=E2=80=99s this atime story. (Narinfo caching was critical when we were using Hydra, because Hydra would compute them all the fly, which included computing signatures over whole nars.) > Although 'guix publish' does its own caching, I would expect 'nginx' to > handle cache hits far more efficiently than guix publish. Therefore, I > expect this change to result in higher CPU usage for a given amount of > traffic. I also expect that cache hits on narinfos are an important > common case for our substitute servers. > > Does this change bring advantages that outweigh the loss of efficiency? I=E2=80=99m not sure the loss of efficiency is noticeable (=E2=80=98guix pu= blish=E2=80=99 uses sendfile(2) on 200, and stat(2) is all it takes to distinguish between 200 and 404, so it=E2=80=99s not that bad.) Anyway, nothing=E2=80=99s set in stone. It did seem like the right thing t= o do now, but if it turned out to be wrong, we can revisit this. In fact, I would very much welcome input from people who are used to tweaking nginx more than I am! Thanks for your feedback, Ludo=E2=80=99.