From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludovic.courtes@inria.fr (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: Performance on NFS Date: Sun, 18 Jun 2017 00:40:19 +0200 Message-ID: <87lgoq8ch8.fsf@gnu.org> References: <20170527105641.9426-1-mail@cbaines.net> <20170527123113.1ca668e7@cbaines.net> <87tw424cap.fsf@gnu.org> <87fufhkw85.fsf@gnu.org> <871sr0ok2h.fsf@gnu.org> <8760gbh2th.fsf@gnu.org> <87efuym57c.fsf@gnu.org> <87a85kt7ad.fsf_-_@gnu.org> <87a85hnvqm.fsf@gnu.org> <87tw3lyz7t.fsf@inria.fr> <87poe4c5y9.fsf_-_@gnu.org> <87fuezkquf.fsf@gnu.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]:50291) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dMMOO-0001bH-07 for guix-devel@gnu.org; Sat, 17 Jun 2017 18:40:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dMMOK-000304-L5 for guix-devel@gnu.org; Sat, 17 Jun 2017 18:40:31 -0400 In-Reply-To: <87fuezkquf.fsf@gnu.org> (Roel Janssen's message of "Sat, 17 Jun 2017 09:36:56 +0200") 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: Roel Janssen Cc: guix-devel@gnu.org Hi! Roel Janssen skribis: > I applied the patch, and here are the results: > > [roel@hpcguix guix]$ time guixr environment --ad-hoc coreutils --pure -- = true > The following derivations will be built: > /gnu/store/0hz8g844432b5h9zbqr9cpsjy0brg15h-profile.drv > /gnu/store/wkksb7bbx3jr0p6p5cj4kkphbwday0yd-info-dir.drv > /gnu/store/cd2mwx9qprdy23p7j3pik2zs14nifn36-manual-database.drv > Creating manual page database for 1 packages... done in 1.816 s > > real 1m14.686s > user 0m5.761s > sys 0m0.498s > [roel@hpcguix guix]$ time guixr environment --ad-hoc coreutils --pure -- = true > > real 0m34.100s > user 0m5.599s > sys 0m0.414s > [roel@hpcguix guix]$ time guixr environment --ad-hoc coreutils --pure -- = true > > real 0m33.821s > user 0m5.140s > sys 0m0.432s You=E2=80=99re telling me it=E2=80=99s just as bad as before, right? > [roel@hpcguix guix]$ time guixr environment --ad-hoc coreutils --pure --n= o-substitutes --no-grafts -- true > The following derivations will be built: > /gnu/store/rvh0imjdimwm90nzr0fmr5gmp97lyiix-profile.drv > /gnu/store/5hm3v4afjf9gix92ixqzv9bwc11a608s-fonts-dir.drv > > real 0m37.200s > user 0m3.408s > sys 0m0.284s > [roel@hpcguix guix]$ time guixr environment --ad-hoc coreutils --pure --n= o-substitutes --no-grafts -- true > > real 0m19.415s > user 0m3.466s > sys 0m0.306s > [roel@hpcguix guix]$ time guixr environment --ad-hoc coreutils --pure --n= o-substitutes --no-grafts -- true > > real 0m18.850s > user 0m3.536s > sys 0m0.346s > [roel@hpcguix guix]$ time guixr environment --ad-hoc coreutils --pure --n= o-grafts -- true > > real 0m16.003s > user 0m3.246s > sys 0m0.301s > [roel@hpcguix guix]$ time guixr environment --ad-hoc coreutils --pure --n= o-grafts -- true > > real 0m18.205s > user 0m3.470s > sys 0m0.314s > [roel@hpcguix guix]$ time guixr environment --ad-hoc coreutils --pure --n= o-substitutes -- true > > real 0m33.731s > user 0m5.111s > sys 0m0.428s > [roel@hpcguix guix]$ time guixr environment --ad-hoc coreutils --pure --n= o-substitutes -- true > > real 0m30.993s > user 0m5.049s > sys 0m0.458s > > Why is grafting so slow, even if it doesn't have to graft anything? Grafting leads to a bunch of additional RPCs: --8<---------------cut here---------------start------------->8--- $ GUIX_PROFILING=3Drpc ./pre-inst-env guix build coreutils /gnu/store/mskh7zisxa313anqv68c5lr4hajldjc5-coreutils-8.27-debug /gnu/store/xbvwxf4k5njnb3hn93xwqlppjkiz4hdv-coreutils-8.27 Remote procedure call summary: 379 RPCs build-things ... 1 built-in-builders ... 1 valid-path? ... 5 query-substitutable-path-infos ... 8 query-references ... 22 query-valid-derivers ... 48 add-text-to-store ... 294 $ GUIX_PROFILING=3Drpc ./pre-inst-env guix build coreutils --no-grafts /gnu/store/mskh7zisxa313anqv68c5lr4hajldjc5-coreutils-8.27-debug /gnu/store/xbvwxf4k5njnb3hn93xwqlppjkiz4hdv-coreutils-8.27 Remote procedure call summary: 294 RPCs built-in-builders ... 1 query-substitutable-path-infos ... 1 build-things ... 1 valid-path? ... 5 add-text-to-store ... 286 --8<---------------cut here---------------end--------------->8--- So the problem is probably not NFS in this case but rather RPC performance. However, I can=E2=80=99t help with this until you drop =E2=80=98guixr=E2=80= =99 and use GUIX_DAEMON_SOCKET=3Dguix:// instead. Hint hint. ;-) Thanks for your feedback, Ludo=E2=80=99.