[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Performance on NFS
From: |
Ludovic Courtès |
Subject: |
Performance on NFS |
Date: |
Wed, 07 Jun 2017 12:35:06 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
Hi Roel,
Roel Janssen <address@hidden> skribis:
>> That is going to make builds verrrry slow. I would suggest having
>> guix-daemon operate on the local /gnu (that’s what Ricardo did, IIRC).
>
> That definitely speeds things up about 50%. So, running the environment
> command from a node that is connected to the node that runs
> guix-daemon, will take about 30 seconds instead of one minute.
>
> This could be made faster by letting 'guix-daemon' do more of the work,
> and let the client-side 'guix' only do the minimum.
Right, but it’s the client that computes the derivation, which involves
quite a bit of I/O and computation.
> (I know.. this remote-guix-daemon stuff voids the warranty.. ;))
>
> The NFS overhead is pretty large. Maybe we can better tune it, and if
> so, document how to tune it for GNU Guix. I already talked to our
> storage expert, and tuning boils down to using fast disks, a
> large-enough NFS cache, and low-latency network equipment.
>
> The reason we have /gnu NFS-mounted on the build node is that we can
> then very easily replace the node when it would have a hardware failure,
> without even losing the ability to run programs that were already
> installed.
I guess you could also use a RAID device for /gnu/store. Or you could
have a local /gnu/store and replicate it elsewhere, maybe
opportunistically via ‘guix publish’.
>> We should make sure these 1782 calls are all warranted (e.g., make sure
>> we don’t open the same file twice; this could be easily diagnosed by
>> looking at the output of ‘strace’.)
>>
>> But then, as you say, it’s a process that opens lots of files.
>>
>> We could cache package lookups, and maybe that’d help a little bit.
>> Currently we use ‘fold-packages’, which loads every single package
>> module, and then we look for a package named “coreutils” among them;
>> with a cache, we could directly load (gnu packages base) and its
>> dependencies.
>>
>> Ludo’.
>
> Running 'guix package -A' only takes a couple of seconds. So I don't
> think that loading the Scheme modules is really a big issue.
How does:
time guix environment --ad-hoc coreutils --pure -- true
compare to:
time guix environment --ad-hoc -e '(@ (gnu packages base) coreutils)' --pure
-- true
? That would give us an estimate of how much the cache I describe would
help.
Thanks,
Ludo’.
- Re: Combining Guix, direnv and Emacs for environment customisation, Roel Janssen, 2017/06/01
- Re: Combining Guix, direnv and Emacs for environment customisation, Ludovic Courtès, 2017/06/03
- Re: Combining Guix, direnv and Emacs for environment customisation, Roel Janssen, 2017/06/03
- Re: Combining Guix, direnv and Emacs for environment customisation, Ludovic Courtès, 2017/06/04
- Re: Combining Guix, direnv and Emacs for environment customisation, Roel Janssen, 2017/06/05
- Performance on NFS,
Ludovic Courtès <=
- Re: Performance on NFS, Roel Janssen, 2017/06/07
- Re: Performance on NFS, Ludovic Courtès, 2017/06/09
- Re: Performance on NFS, Roel Janssen, 2017/06/12
- Re: Performance on NFS, Ludovic Courtès, 2017/06/12
- Performance on NFS, Ludovic Courtès, 2017/06/16
- Re: Performance on NFS, Roel Janssen, 2017/06/17
- Re: Performance on NFS, Ludovic Courtès, 2017/06/17
- Re: Performance on NFS, Roel Janssen, 2017/06/17
- Re: Performance on NFS, Ricardo Wurmus, 2017/06/18
- RPC performance, Ludovic Courtès, 2017/06/19