[Top][All Lists]

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

Memory usage in ‘guix pull’

From: Ludovic Courtès
Subject: Memory usage in ‘guix pull’
Date: Sat, 14 Dec 2013 16:42:24 +0100
User-agent: Gnus/5.130007 (Ma Gnus v0.7) Emacs/24.3 (gnu/linux)


On IRC, Arne reported that ‘guix pull’ in the VM image would fail when
running with less than 1 GiB of RAM (!).  That’s something I didn’t
notice on my well-equipped laptop, but it’s definitely unacceptable.

This turned out to be due to the hack used to work around
<>: the build process (which compiles all the
.scm files of Guix) would end up retaining in memory N copies of
basically all the modules, where N is the number of files to compile.
This is because in Guile 2.0 modules are “anchored” in the module
hierarchy once they are created, and they cannot really be reclaimed.

Commit 0c2e1dd fixes that by simply using separate processes for each
compilation, and the next commit does that in parallel, à la ‘make -j’.

If you’re using the VM, you should be able to:

  1. Start the VM with ‘-m 1024’ or similar.

  2. Run ‘guix pull’; this will download the latest Guix, including this
     ‘guix pull’ fix.

  3. From there on ‘guix pull’ should be able to run with less memory.

This is still not idea, obviously, but it seems we can’t do much better
until <> is fixed.

Please test and report back!


reply via email to

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