Re: [yocto] Limiting Yocto Memory Usage

Ferry Toth <[email protected]> Tue, 28 Jul 2026 23:36:48 +0200
Newsgroups org.yoctoproject.lists.yocto
Message-ID <[email protected]>
Hi,

Op 28-07-2026 om 23:20 schreef Randy MacLeod:
> On 2026-07-28 16:35, Ferry Toth via lists.yoctoproject.org wrote:
>> Hi
>>
>> Op 28-07-2026 om 09:30 schreef Ferry Toth:
>>> Hi,
>>>
>>> Op 14-07-2026 om 23:33 schreef Randy MacLeod:
>>>> Hi Luis,
>>>>
>>>> On 2026-07-10 17:26, Luis Merayo via lists.yoctoproject.org wrote:
>>>>> Hi,
>>>>>
>>>>> I would like to know if there is a way to limit Bitbake's Memory 
>>>>> usage to a specific percentage of the available RAM. For example, 
>>>>> can the Yocto build be limited to use a maximum of 70% of RAM?
>>>> Not without using a container to do the build.
>>>>>
>>>>> Could these three variables achieve this?
>>>>>
>>>>> BB_PRESSURE_MAX_CPU <https://docs.yoctoproject.org/dev/ref-manual/ 
>>>>> variables.html#term-BB_PRESSURE_MAX_CPU>, BB_PRESSURE_MAX_IO 
>>>>> <https:// 
>>>>> docs.yoctoproject.org/dev/ref-manual/variables.html#term- 
>>>>> BB_PRESSURE_MAX_IO> , BB_PRESSURE_MAX_MEMORY <https:// 
>>>>> docs.yoctoproject.org/dev/ref-manual/variables.html#term- 
>>>>> BB_PRESSURE_MAX_MEMORY>
>>>>>
>>>>> I see the range for these variables is from 1 to 1000000, so I 
>>>>> would like to understand if there is a way to specify their values 
>>>>> as a function of the available RAM.
>>>> No, there is only pressure when resources are over-commited so if 
>>>> you have free memory, there's no over-commit.
>>>> https://docs.kernel.org/accounting/psi.html
>>>>
>>>> That's the design intent of the bitbake PRESSURE regulation system.
>>>>
>>>> There are plans to work on additional build system regulation.
>>>>
>>>> The first idea is to use the jobserver design:
>>>> https://lore.kernel.org/openembedded-core/?q=GNU+AND+jobserver+ 
>>>> +AND+f%3Amacleod
>>>> and that would indirectly limit memory consumption since there 
>>>> would be fewer instances of gcc / rustc / ... running
>>>> at once.
>>>
>>> I do that, since 2 years or so. https://github.com/htot/meta-intel- 
>>> edison/commits/whinlatter/
>>>
>>> In principle you need to catch the call to make and ninja (to force 
>>> them to use the jobserver) and patch bitbake (see setup.sh) to act 
>>> as a jobserver.
>>>
>>> Now got it working on wrynose, still need to push that. Maybe later 
>>> today.With wrynose ninja has support for jobserver so doesn't need 
>>> patching, just a bbappend.
>>
>> Pushed my wrynose branch now: 
>> https://github.com/htot/meta-intel-edison/tree/wrynose
>
> Nice, are you interested in trying to get that or something based on 
> that work merged into oe-core/master ?
> I have been wanting to do for a while but other responsibilities keep 
> pushing it to the back burner or out of the kitchen completely !
>
Yeah that would be great. The patches were originally suggested by 
Richard Purdie. What spooks me a bit (based on earlier experience) is 
what additional stuff (self tests?) would be needed to get this accepted.
>
> ../Randy
>
>
>>
>>> With this you can limit the number of compile jobs. On my builds I 
>>> found g++ compiles are the heaviest, about 1GB RAM each. So, with 16 
>>> cores I need 16 GB.
>>> Separately I found linking nodejs takes 5 x 5GB (5 jobs linking with 
>>> LTO?). So, I limited that to just one (since both nodejs and nodejs- 
>>> native can be built at the same time).
>>>
>>> I'm not building rust so there may be other bottlenecks to resolve.
>>>
>>>> There's also an even less clear idea about being able to restrict 
>>>> the build by specifying memory usage.
>>>> That shouldn't be too hard to implement in bitbake in the same 
>>>> point where the pressure checks happen.
>>>> Are you interested in working on that ?
>>>>
>>>> There are of course other levers to pull to reduce CPU/memory 
>>>> consumption:
>>>> https://docs.yoctoproject.org/dev-manual/limiting-resources.html
>>>>
>>>> Have you tried them ?
>>>>
>>>>
>>>>>
>>>>> Regards,
>>>>>
>>>>> Luis
>>>>>
>>>>>
>>>>>
>>>>> File:RidgeRun.ai banner.png <https://ridgerun.ai/>
>>>>> This email and any attachments are intended for the sole use of 
>>>>> the named recipient(s) and contain(s) confidential information 
>>>>> that may be proprietary, privileged, or copyrighted under 
>>>>> applicable law. If you are not the intended recipient, do not 
>>>>> read, copy, or forward this email message or any attachments, 
>>>>> delete this email message and any attachments immediately.
>>>>>
>>>>>
>>>>>
>>>>
>>>> -- 
>>>> # Randy MacLeod
>>>> # Wind River Linux
>>>>
>>>
>>>
>>
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#66668):https://lists.yoctoproject.org/g/yocto/message/66668
>> Mute This Topic:https://lists.yoctoproject.org/mt/120272854/3616765
>> Group Owner:[email protected]
>> Unsubscribe:https://lists.yoctoproject.org/g/yocto/unsub [[email protected]]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
>
> -- 
> # Randy MacLeod
> # Wind River Linux