[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: guix --container is RAM hungry
From: |
Ludovic Courtès |
Subject: |
Re: guix --container is RAM hungry |
Date: |
Wed, 10 Apr 2024 16:02:51 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Hi,
Edouard Klein <edou@rdklein.fr> skribis:
> Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
>
>> Hi Ludovic,
>>
>> Ludovic Courtès <ludo@gnu.org> writes:
>>
>>> Hi Edouard,
>>>
>>> Edouard Klein <edou@rdklein.fr> skribis:
>>>
>>>> I'm a huge fan of guix --container, and I created a system to use those
>>>> by default for network services. But the VPS these services run on has
>>>> only 2GB of RAM, and I just realized that a container, by default,
>>>> requires at least 200MB.
>>>
>>> Ouch, confirmed:
>>>
>>> $ \time -v guix shell -C coreutils -- uname 2>&1 |grep 'Maximum resident'
>>> Maximum resident set size (kbytes): 283048
>>> $ \time -v guix shell coreutils -- uname 2>&1 |grep 'Maximum resident'
>>> Maximum resident set size (kbytes): 56588
>>> $ guix describe
>>> Generation 297 Mar 24 2024 23:12:25 (current)
>>> guix 28bc0e8
>>> repository URL: https://git.savannah.gnu.org/git/guix.git
>>> branch: master
>>> commit: 28bc0e870b4d48b8e3e773382bb0e999df2e3611
>>>
>>>
>>> As raingloom and Ricardo wrote, there’s a Guile process that keeps
>>> waiting.
>>
>> Is there a technical reason for this? Couldn't we replace the
>> current Guix process with 'exec', as hinted by Edouard?
>>
>
> Raingloom did, I just reported the problem without investigating the
> cause.
Did what?
I don’t think execing is possible in this case, unless we let the user’s
process run as PID 1 inside its namespace (which isn’t recommended).
See #:child-is-pid1? in ‘call-with-container’.
I submitted a patch set to help a bit with that and related issues:
https://issues.guix.gnu.org/70132
(I shouldn’t have said in the cover letter that it’s a boring patch
series: I got zero comments. :-))
Thanks,
Ludo’.