Hi,

Edouard Klein <e...@rdklein.fr> skribis:

> Maxim Cournoyer <maxim.courno...@gmail.com> writes:
>
>> Hi Ludovic,
>>
>> Ludovic Courtès <l...@gnu.org> writes:
>>
>>> Hi Edouard,
>>>
>>> Edouard Klein <e...@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’.

Reply via email to