ConduitDoku

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.

Management plane per game server
Memory beyond the heap
What the machines carry
Where the management plane lives

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 services1919
Host memory192 GB, 81 % full121 GB across 3 nodes, 53 % full
Game JVM RSS total148.0 GB55.6 GB
Allocated heap (Σ ‑Xmx)108.9 GB72.2 GB
RSS vs heap ceiling136 % (+39 GB beyond every ‑Xmx)75 % (under the ceiling)
Management plane, absolute0.92 GB (master + screens, one node)1.20 GB (3× HA panel + 3 agents + per‑CT supervision)
Management plane per service48 MB — single point of failure43 MB — replicated, self‑healing
Per‑service supervision (outside JVM)in‑JVM wrapper agent, not separable~13 MB (systemd + tmux per container)
Right‑sizingfixed ‑Xmx, set by hand7‑day P95 per task, one‑click reclaim
Managed infrastructureexternal to CloudNetredis ×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,args filtered to java, 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 -m and largest java RSS inside each running CT on all three nodes; -Xmx read 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.
Auf GitHub bearbeitendocs/COMPARISON.md 3 Min. LesezeitAktualisiert