<?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[Request to Cloudron: make `/dev/shm` configurable per app]]></title><description><![CDATA[<h2>The ask, in one line</h2>
<p dir="auto">Add a manifest field to set an app container's <code>/dev/shm</code> size, in the same shape as the existing<br />
<code>memoryLimit</code>.</p>
<h2>What we hit</h2>
<p dir="auto">Our community package for <a href="https://github.com/vllm-project/vllm" target="_blank" rel="noopener noreferrer nofollow ugc">vLLM</a> updated from upstream 0.26.0<br />
to 0.27.1. The new version runs its inference engine in a separate process and brokers work between<br />
the two over a POSIX shared-memory ring buffer. It refuses to start if <code>/dev/shm</code> is too small:</p>
<pre><code>RuntimeError: Insufficient space in /dev/shm: 160 MiB required, 62 MiB free.
Increase /dev/shm (e.g. --shm-size or --ipc=host).
</code></pre>
<p dir="auto">A Cloudron app container gets a fixed <strong>64 MiB</strong>, confirmed on two independent installs on two<br />
different Cloudron servers (9.x and 8.3.x):</p>
<pre><code>$ df -h /dev/shm
shm              64M   76K   64M   1% /dev/shm
</code></pre>
<p dir="auto">We could find no way to change it: no manifest field, no CLI flag, and nothing in the app<br />
configuration UI.</p>
<h2>Why we think it is worth a platform change rather than a per-app workaround</h2>
<p dir="auto">The 64 MiB default is Docker's, and it predates the current generation of workloads. Anything using<br />
PyTorch or Python <code>multiprocessing</code> shared memory, headless Chrome or Chromium (a very common<br />
packaging target), or a database tuned with large shared buffers, runs into the same ceiling. In<br />
every case the symptom is a confusing message from a library several layers down rather than<br />
"your platform gives you 64 MiB", so the diagnosis is expensive each time. It cost us about<br />
twenty minutes on a package we already understood well.</p>
<p dir="auto">It is also the kind of limit that only bites <strong>on update</strong>. Our 0.26.0 install is healthy today. Had<br />
we published 0.27.1 without catching this, every install would have updated into a container that<br />
cannot boot at all — and because the app never becomes healthy, the failure presents as an install<br />
problem rather than a resource one.</p>
<h2>What we did instead, in case it is useful to others</h2>
<p dir="auto">vLLM can run its engine in-process, which never allocates the ring buffer. On a single-model,<br />
single-replica CPU server that costs nothing, so our <code>start.sh</code> now measures the free space in<br />
<code>/dev/shm</code> at boot and sets <code>VLLM_ENABLE_V1_MULTIPROCESSING=0</code> when it is under 200 MiB, logging the<br />
reason. It is written as a detection rather than a constant so the package returns to upstream's<br />
default automatically if the platform limit ever rises.</p>
<p dir="auto">That works, and we are shipping it. But it is a workaround chosen because the platform value is<br />
fixed, and the next package to hit this may not have an equivalent escape hatch.</p>
<h2>Suggested shape</h2>
<pre><code class="language-json">{
  "memoryLimit": 10737418240,
  "shmSize": 268435456
}
</code></pre>
<p dir="auto">Defaulting to today's 64 MiB, capped at some fraction of <code>memoryLimit</code> so it cannot be used to<br />
evade memory accounting, and ignored by older boxes so manifests stay backward compatible.</p>
<p dir="auto">Happy to test a build.</p>
]]></description><link>https://forum.cloudron.io/topic/15844/request-to-cloudron-make-dev-shm-configurable-per-app</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 03:43:41 GMT</lastBuildDate><atom:link href="https://forum.cloudron.io/topic/15844.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 19 Aug 2026 21:53:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Request to Cloudron: make `/dev/shm` configurable per app on Fri, 21 Aug 2026 19:32:24 GMT]]></title><description><![CDATA[<p dir="auto">We will have to implement this in the manifest in a future release.</p>
<p dir="auto">A workaround is a docker systemd drop in with <code>--default-shm-size=512m</code> in it .</p>
]]></description><link>https://forum.cloudron.io/post/128406</link><guid isPermaLink="true">https://forum.cloudron.io/post/128406</guid><dc:creator><![CDATA[girish]]></dc:creator><pubDate>Fri, 21 Aug 2026 19:32:24 GMT</pubDate></item></channel></rss>