CloudNet (screens) vs Conduit — a measured comparison
Two real networks, measured on the same evening (2026‑07‑30): the production network running
CloudNet 3 with screen sessions on a single 192 GB node, and the Conduit cluster — three
Proxmox nodes totalling 121 GB, every service in its own LXC container, control plane included.
Numbers below are resident memory (ps -eo rss, free -m) taken live; nothing is synthetic.
The last one is not a measurement, it is a floor plan — the same 19 services, drawn against where the thing that manages them actually runs. It is here because "0.92 GB" and "1.20 GB" look like a point against Conduit until you notice the second number is spread over three machines and the first one is not.
The numbers#
| CloudNet (live node1) | Conduit (whole cluster) | |
|---|---|---|
| JVM game/proxy services | 19 | 19 |
| Host memory | 192 GB, 81 % full | 121 GB across 3 nodes, 53 % full |
| Game JVM RSS total | 148.0 GB | 55.6 GB |
| Allocated heap (Σ ‑Xmx) | 108.9 GB | 72.2 GB |
| RSS vs heap ceiling | 136 % (+39 GB beyond every ‑Xmx) | 75 % (under the ceiling) |
| Management plane, absolute | 0.92 GB (master + screens, one node) | 1.20 GB (3× HA panel + 3 agents + per‑CT supervision) |
| Management plane per service | 48 MB — single point of failure | 43 MB — replicated, self‑healing |
| Per‑service supervision (outside JVM) | in‑JVM wrapper agent, not separable | ~13 MB (systemd + tmux per container) |
| Right‑sizing | fixed ‑Xmx, set by hand | 7‑day P95 per task, one‑click reclaim |
| Managed infrastructure | external to CloudNet | redis ×2, postgres, mariadb, MinIO, nginx — 0.5 GB, inside the same plane |
What is fair to conclude — and what is not#
Fair. The management planes are directly comparable, and Conduit's costs less per service while being replicated three ways: kill any panel replica or node agent and nothing stops. CloudNet's 0.9 GB master is a single process on a single machine. The per‑container supervision Conduit adds (systemd + tmux per service) is ~13 MB — container isolation is effectively free at this scale.
Fair. The +36 % beyond‑heap footprint on the CloudNet node is real, measured, and structural:
every service carries the CloudNet wrapper as an in‑process -javaagent on top of ordinary JVM
native memory, and none of it is visible to a world model where memory = the ‑Xmx you set. 39 GB of
the node — a fifth of the machine — is spent above what anyone provisioned. Conduit's equivalent
overhead (the connector plugin) also lives in‑heap, so it is inside the 75 %, not hidden outside it.
Not fair, so not claimed. There are no timings on the CloudNet side of any of this. Nothing was killed on the production network to find out how long it takes to come back, and inventing a figure for it would be worse than leaving the column empty. So the recovery numbers on the floor plan — 7 seconds for the VIP to leave a dead replica, two minutes for that replica to be rolled back and healthy again — are Conduit's own, measured in a drill, and are not a comparison. Conduit's speed figures against its own earlier self live in BENCHMARKS.md.
Not fair, so not claimed. The game heaps themselves are not comparable: the live network holds real players on mature worlds with heavy plugin stacks; the Conduit fleet is younger and mostly idle. The RSS‑vs‑Xmx chart is labelled an observation for exactly that reason. What is structural rather than load‑dependent: fixed ‑Xmx cannot shrink when load does, and Conduit's P95 right‑sizing exists because of that — at measurement time it had flagged 13 over‑provisioned services with one‑click reclaim.
Method#
- CloudNet node1:
ps -eo rss,etimes,argsfiltered tojava, classified by the wrapper agent flag;screen -ls+ screen process RSS;free -m. Nineteen wrapped services, one master (launcher.jar) plus two idle launchers, three screen processes totalling 9 MB. - Conduit: per‑container
free -mand largestjavaRSS inside each running CT on all three nodes;-Xmxread from/proc/<pid>/cmdline; panel replicas and node agents measured as processes. Per‑CT supervision = container used memory minus JVM RSS. - One JVM service per side is excluded from the heap‑ratio row where its ‑Xmx could not be read (CloudNet: none; Conduit: the Hytale placeholder). Screens' 9 MB is counted into the CloudNet management plane. Nothing else is estimated.