<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[1.117.2 - "scale puma worker count to processor count" causes OOM on multi-core servers with limited RAM]]></title><description><![CDATA[<p dir="auto">Hi,</p>
<p dir="auto">the 1.117.2 update introduced scaling Puma workers to the processor count. On my server with 12 cores this changed the worker count from the previous default of 3 to 12 — a 4x increase in RAM consumption, causing repeated OOM kills.</p>
<p dir="auto"><strong>Setup:</strong></p>
<ul>
<li>Cloudron 9.2.0</li>
<li>GitLab 1.117.2</li>
<li>12 CPU cores, 24GB RAM total</li>
<li>Small team, ~5 active users</li>
</ul>
<p dir="auto"><strong>What happened:</strong><br />
Before 1.117.2, GitLab ran stably for years with 7GB RAM limit (3 Puma workers by default via <code>puma.rb</code>). After the update, GitLab immediately started hitting OOM repeatedly — even after raising the memory limit to 14GB, it still consumed 13.99GB and got killed.</p>
<p dir="auto">The root cause is in <code>start.sh</code>:</p>
<pre><code class="language-bash">cpus=$(nproc 2&gt;/dev/null || echo 2)
export PUMA_WORKERS=$(( cpus &lt; 2 ? 2 : cpus ))
</code></pre>
<p dir="auto">On a 12-core server this sets 12 Puma workers. Each worker consumes ~800MB–1GB RAM, so Puma alone needs ~12GB — before Gitaly, Sidekiq and Redis are counted.</p>
<p dir="auto"><strong>Suggestion:</strong><br />
Either cap <code>PUMA_WORKERS</code> at a reasonable maximum (e.g. 4–6), or provide a way to override it via <code>/app/data/</code> so admins can tune it for their setup.</p>
<p dir="auto">Is there a recommended workaround in the meantime?</p>
<p dir="auto">Thanks</p>
]]></description><link>https://forum.cloudron.io/topic/15687/1.117.2-scale-puma-worker-count-to-processor-count-causes-oom-on-multi-core-servers-with-limited-ram</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Jul 2026 20:53:14 GMT</lastBuildDate><atom:link href="https://forum.cloudron.io/topic/15687.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 07 Jul 2026 15:47:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 1.117.2 - "scale puma worker count to processor count" causes OOM on multi-core servers with limited RAM on Tue, 14 Jul 2026 15:14:55 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/simon" aria-label="Profile: simon">@<bdi>simon</bdi></a> yeah, that makes sense. I think I will just cap it for all instances to 4.</p>
]]></description><link>https://forum.cloudron.io/post/126771</link><guid isPermaLink="true">https://forum.cloudron.io/post/126771</guid><dc:creator><![CDATA[girish]]></dc:creator><pubDate>Tue, 14 Jul 2026 15:14:55 GMT</pubDate></item><item><title><![CDATA[Reply to 1.117.2 - "scale puma worker count to processor count" causes OOM on multi-core servers with limited RAM on Tue, 14 Jul 2026 07:17:07 GMT]]></title><description><![CDATA[<p dir="auto">Update on our end:<br />
After the fix in 1.117.2/1.117.3, GitLab starts correctly and the worker count scales with available memory. On our 12-core server with 9.25GB assigned, we get 7 workers — which is mathematically correct per the formula.<br />
However we keep getting OOM kills after several hours. With 7 workers × ~1GB each, plus Gitaly, Sidekiq and Redis, the container is consistently running at 85-90% of its limit. There's no headroom for load spikes.<br />
The formula mem_gb - 2 assumes ~1GB per worker, but in practice workers grow beyond that under real load. Would it make sense to use a more conservative formula, e.g. mem_gb / 2 or capping at 4 workers for instances with fewer than 20 users?</p>
]]></description><link>https://forum.cloudron.io/post/126748</link><guid isPermaLink="true">https://forum.cloudron.io/post/126748</guid><dc:creator><![CDATA[simon]]></dc:creator><pubDate>Tue, 14 Jul 2026 07:17:07 GMT</pubDate></item><item><title><![CDATA[Reply to 1.117.2 - "scale puma worker count to processor count" causes OOM on multi-core servers with limited RAM on Wed, 08 Jul 2026 15:17:08 GMT]]></title><description><![CDATA[<p dir="auto">Thank you. This solved it.</p>
]]></description><link>https://forum.cloudron.io/post/126560</link><guid isPermaLink="true">https://forum.cloudron.io/post/126560</guid><dc:creator><![CDATA[simon]]></dc:creator><pubDate>Wed, 08 Jul 2026 15:17:08 GMT</pubDate></item><item><title><![CDATA[Reply to 1.117.2 - "scale puma worker count to processor count" causes OOM on multi-core servers with limited RAM on Wed, 08 Jul 2026 11:53:09 GMT]]></title><description><![CDATA[<p dir="auto">Hello <a class="plugin-mentions-user plugin-mentions-a" href="/user/simon" aria-label="Profile: simon">@<bdi>simon</bdi></a><br />
We just published an update for the <a class="plugin-mentions-category plugin-mentions-a" href="/category/25/gitlab" aria-label="Profile: gitlab">@<bdi>gitlab</bdi></a> app that reduces the puma work count.</p>
]]></description><link>https://forum.cloudron.io/post/126548</link><guid isPermaLink="true">https://forum.cloudron.io/post/126548</guid><dc:creator><![CDATA[james]]></dc:creator><pubDate>Wed, 08 Jul 2026 11:53:09 GMT</pubDate></item><item><title><![CDATA[Reply to 1.117.2 - "scale puma worker count to processor count" causes OOM on multi-core servers with limited RAM on Wed, 08 Jul 2026 10:08:39 GMT]]></title><description><![CDATA[<p dir="auto">Even with 18 GiB of RAM allocated to GitLab, I’m constantly seeing OOM messages. So a quick fix would be great.</p>
]]></description><link>https://forum.cloudron.io/post/126541</link><guid isPermaLink="true">https://forum.cloudron.io/post/126541</guid><dc:creator><![CDATA[simon]]></dc:creator><pubDate>Wed, 08 Jul 2026 10:08:39 GMT</pubDate></item><item><title><![CDATA[Reply to 1.117.2 - "scale puma worker count to processor count" causes OOM on multi-core servers with limited RAM on Wed, 08 Jul 2026 06:44:31 GMT]]></title><description><![CDATA[<p dir="auto">Yeah, we had this our gitlab instance too. I am fixing this now <a class="plugin-mentions-user plugin-mentions-a" href="/user/simon" aria-label="Profile: simon">@<bdi>simon</bdi></a></p>
]]></description><link>https://forum.cloudron.io/post/126535</link><guid isPermaLink="true">https://forum.cloudron.io/post/126535</guid><dc:creator><![CDATA[girish]]></dc:creator><pubDate>Wed, 08 Jul 2026 06:44:31 GMT</pubDate></item><item><title><![CDATA[Reply to 1.117.2 - "scale puma worker count to processor count" causes OOM on multi-core servers with limited RAM on Wed, 08 Jul 2026 06:13:04 GMT]]></title><description><![CDATA[<p dir="auto">I also checked <code>start.sh</code> for any hook mechanism (sourcing a custom file from <code>/app/data/</code> etc.), there is none. So there is currently no supported way for end users to override <code>PUMA_WORKERS</code> without modifying read-only container files.</p>
<p dir="auto">A fix would need to come from the package itself, for example by capping the worker count or by reading an override from <code>/app/data/</code> like:</p>
<pre><code class="language-bash">PUMA_WORKERS=$(( cpus &lt; 2 ? 2 : cpus ))
[[ -f /app/data/puma_workers ]] &amp;&amp; PUMA_WORKERS=$(cat /app/data/puma_workers)
export PUMA_WORKERS
</code></pre>
<p dir="auto">Until then, the only workaround is raising the memory limit in Cloudron significantly. On a 12-core server this means ~14-18GB just for GitLab!</p>
]]></description><link>https://forum.cloudron.io/post/126527</link><guid isPermaLink="true">https://forum.cloudron.io/post/126527</guid><dc:creator><![CDATA[simon]]></dc:creator><pubDate>Wed, 08 Jul 2026 06:13:04 GMT</pubDate></item><item><title><![CDATA[Reply to 1.117.2 - "scale puma worker count to processor count" causes OOM on multi-core servers with limited RAM on Wed, 08 Jul 2026 06:08:54 GMT]]></title><description><![CDATA[<p dir="auto">Thanks for the hint<br />
The GitLab docs describe configuring Puma via <code>/etc/gitlab/gitlab.rb</code>, but the Cloudron package doesn't use Omnibus — it has its own Docker-based setup with <code>gitlab.yml</code> and a <code>start.sh</code> script.</p>
<p dir="auto">In <code>start.sh</code>, the worker count is set like this:</p>
<pre><code class="language-bash">cpus=$(nproc 2&gt;/dev/null || echo 2)
export PUMA_WORKERS=$(( cpus &lt; 2 ? 2 : cpus ))
</code></pre>
<p dir="auto">Since <code>start.sh</code> is read-only inside the container, I can't override <code>PUMA_WORKERS</code> directly. Is there a supported way in the Cloudron GitLab package to override this — for example via a file in <code>/app/data/</code> or a similar mechanism?</p>
]]></description><link>https://forum.cloudron.io/post/126526</link><guid isPermaLink="true">https://forum.cloudron.io/post/126526</guid><dc:creator><![CDATA[simon]]></dc:creator><pubDate>Wed, 08 Jul 2026 06:08:54 GMT</pubDate></item><item><title><![CDATA[Reply to 1.117.2 - "scale puma worker count to processor count" causes OOM on multi-core servers with limited RAM on Tue, 07 Jul 2026 16:03:07 GMT]]></title><description><![CDATA[<p dir="auto">Hello <a class="plugin-mentions-user plugin-mentions-a" href="/user/simon" aria-label="Profile: simon">@<bdi>simon</bdi></a><br />
Thanks for reporting.<br />
It should be possible to limit the ram usage of the puma workers according to <a href="https://docs.gitlab.com/administration/operations/puma/" target="_blank" rel="noopener noreferrer nofollow ugc">https://docs.gitlab.com/administration/operations/puma/</a></p>
]]></description><link>https://forum.cloudron.io/post/126514</link><guid isPermaLink="true">https://forum.cloudron.io/post/126514</guid><dc:creator><![CDATA[james]]></dc:creator><pubDate>Tue, 07 Jul 2026 16:03:07 GMT</pubDate></item></channel></rss>