From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: Performance regression on NFS with new manifest version Date: Thu, 09 Nov 2017 10:58:11 +0100 Message-ID: <87tvy3ojt8.fsf@gnu.org> References: <873790o4q1.fsf@elephly.net> <87mv6ssyy0.fsf@gnu.org> <87377fukfl.fsf@gnu.org> <87shex4pc9.fsf@gnu.org> <87fu9pysaa.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]:53593) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eCjbG-0005nN-VF for guix-devel@gnu.org; Thu, 09 Nov 2017 04:58:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eCjbD-0000dT-1s for guix-devel@gnu.org; Thu, 09 Nov 2017 04:58:19 -0500 In-Reply-To: <87fu9pysaa.fsf@gnu.org> (Roel Janssen's message of "Wed, 08 Nov 2017 11:32:45 +0100") 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 Roel Janssen skribis: > Indeed, here's a new strace, without using 'guixr', but instead using > 'guix' with 'guix-daemon' listening on a TCP port: > > $ time strace -c guix package --search-paths -p /gnu/profiles/per-languag= e/r=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 > export PATH=3D"/gnu/profiles/per-language/r/bin" > export R_LIBS_SITE=3D"/gnu/profiles/per-language/r/site-library/" > export TERMINFO_DIRS=3D"/gnu/profiles/per-language/r/share/terminfo" > % time seconds usecs/call calls errors syscall > ------ ----------- ----------- --------- --------- ---------------- > 30.15 0.010014 30 334 162 open > 24.38 0.008100 5 1518 1285 stat > 23.29 0.007738 90 86 read > 11.21 0.003723 12 314 74 futex > 2.99 0.000994 5 220 mmap > 2.49 0.000826 5 175 mprotect > 1.23 0.000407 2 175 close > 0.72 0.000238 4 66 fstat > ... > ------ ----------- ----------- --------- --------- ---------------- > 100.00 0.033219 3335 1535 total > > real 1m12.196s > user 1m10.090s > sys 0m0.377s > > So, I don't think the real issue is on display here, because strace only > thinks the command took 0.033219 seconds, but it actually too 78.196 > seconds. The timings above suggest that it=E2=80=99s mostly CPU time, which could be= a computational problem within Guix. Unfortunately, I cannot reproduce it locally: --8<---------------cut here---------------start------------->8--- $ guix package -p foo -i r $(guix package -A '^r-' |cut -f1|grep -v bsgenom= e|head -100) [...] Creating manual page database for 4 packages... done in 0.038 s pakoj 101 en profilo La jenaj medi-variablaj difinoj povos esti necesaj: export PATH=3D"foo/bin${PATH:+:}$PATH" export R_LIBS_SITE=3D"foo/site-library/${R_LIBS_SITE:+:}$R_LIBS_SITE" $ time guix package -p foo --search-paths export PATH=3D"foo/bin" export R_LIBS_SITE=3D"foo/site-library/" real 0m1.569s user 0m1.602s sys 0m0.008s $ guix package -p foo -I | wc -l 101 --8<---------------cut here---------------end--------------->8--- Could you try to isolate the problem in a way that I can reproduce it? Maybe you can first try the same profile on a laptop with a local file system and local guix-daemon. Also, you may want to use =E2=80=98time=E2=80=99 without =E2=80=98strace=E2= =80=99 to make sure we=E2=80=99re not measuring the run-time overhead of =E2=80=98strace=E2=80=99. TIA! Ludo=E2=80=99.