guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Performance regression on NFS with new manifest version


From: Ludovic Courtès
Subject: Re: Performance regression on NFS with new manifest version
Date: Thu, 09 Nov 2017 10:58:11 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)

Roel Janssen <address@hidden> 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-language/r  
>                                                                               
>                                                               
> export PATH="/gnu/profiles/per-language/r/bin"
> export R_LIBS_SITE="/gnu/profiles/per-language/r/site-library/"
> export TERMINFO_DIRS="/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’s 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 
bsgenome|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="foo/bin${PATH:+:}$PATH"
   export R_LIBS_SITE="foo/site-library/${R_LIBS_SITE:+:}$R_LIBS_SITE"
$ time guix package -p foo --search-paths
export PATH="foo/bin"
export R_LIBS_SITE="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 ‘time’ without ‘strace’ to make sure we’re not
measuring the run-time overhead of ‘strace’.

TIA!

Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]