r/Proxmox • • 22h ago

Community Showcase! I moved my Proxmox services to OCI — and cut their RAM usage by 40%

134 Upvotes

After my first OCI tests, I migrated the services in my Proxmox homelab using ProxMenux. I wanted to try it on my own setup and see what worked, rather than recommend that everyone move their homelab.

The measured services went from 4,341 to 2,617 MiB of RAM PSS, about 40% less. That is the total for those services, not a 40% reduction in the whole node's memory usage. Home Assistant still runs in a VM with HAOS.

RAM savings depend on both the application and the installation you’re migrating from. The 40% reduction is specific to my mix of services and previous setups—not a universal saving.

Four different ways to run the same applications

I compared applications installed directly in an LXC, Docker inside an LXC, OCI images run as LXCs without Docker Engine, and Docker directly on the lab host. I also explain the VM + Docker option in the video, but I did not measure it.

The lab used AdGuard Home, Pi-hole, Vaultwarden, Uptime Kuma, Nginx Proxy Manager, Memos, Actual Budget, Navidrome, Jellyfin and PostgreSQL. These were test installations with equivalent synthetic data and controlled load, separate from my actual services.

Lab arrangement Idle RAM, MiB PSS Under load, MiB PSS
LXC from OCI image 685 803
Docker inside LXC 1,919 2,050
Application installed directly in LXC 1,146 1,258
Docker on the lab host 847 967

There was one Docker Engine per LXC in the Docker-in-LXC case, but one shared Engine for all ten applications in the host-Docker case. Those are different layouts; the 1,919 MiB result does not describe ten containers sharing one Docker Engine. Installing Docker on the hypervisor was only a lab reference, not my recommendation.

Each arrangement was measured for two minutes at idle and two minutes under simultaneous load, with a 20-second warm-up before the load measurement. PSS shares the accounting of shared memory pages. These totals include the processes and runtime of each arrangement, not the common Proxmox services, kernel or unmapped filesystem cache.

My actual homelab migration

This was a separate before/after comparison of complete services with my existing data, using two-minute RAM measurements during normal activity. The machine was a Minisforum MS03 with an Intel Core Ultra 9 386H, 16 logical CPUs and about 62.3 GiB of usable RAM, running Proxmox 9.2.21.

Service Previous installation Before, MiB PSS OCI, MiB PSS Less RAM
AdGuard Home Direct LXC 230 128 44%
Uptime Kuma LXC + Docker 311 165 47%
Nginx Proxy Manager LXC + Docker 394 118 70%
Plex Direct LXC 154 127 18%
Tailscale Direct LXC 70 32 54%
ARR suite, five services LXC + Docker 1,271 735 42%
Vaultwarden LXC + Docker 169 29 83%
Nextcloud, three services LXC + Docker 406 267 34%
Homepage LXC + Docker 301 145 52%
Immich, four services LXC + Docker 1,035 872 16%
Total 4,341 2,617 40%

Values are rounded; totals were calculated before rounding. For multi-service applications, the OCI column includes all their LXCs, not just the frontend. This is my real migration result, not an identical-version benchmark or a promise of the same saving in another setup. I did not make a new CPU comparison for this migration.

Several LXCs does not mean several LAN addresses

Immich and Nextcloud are split into an LXC per service by ProxMenux. Their services communicate on an internal network; only the application container also needs the LAN connection I use to reach it. That layout is a ProxMenux decision, not an OCI requirement. I use tags to keep the groups readable in Proxmox.

I no longer use Arcane for these services: I manage them through Proxmox and ProxMenux, including their PBS backups. OCI application containers are still Technology Preview.

How are you organising multi-service applications if you use OCI-backed LXCs? If you prefer Docker in a VM, what matters most in your setup: the shared runtime, isolation, updates or migration?

My video showing the comparison and the migrated homelab. The original video is in Spanish.

English translation of my Spanish video notes, with AI assistance.


r/Proxmox • • 19m ago

Question Trying to do my first hardware passthrough. What's easiest to start with?

• Upvotes

I have a few different hardware I'd like to try and passthrough, but I don't know where to start. I tried Googling but I always run into something.

I have:

  • an old GTX 580 I would like to use on two different LXC's (if possible). One Jellyfin on Debian and a Ubuntu desktop that runs really sluggish
  • a pair of generic PCIe co-ax TV tuners I would like passed to Jellyfin (Gateway DX4300 Yuan PCIe x1 Video/TV Tuner Card PE-988 G0945025)
  • a SATA cd drive I would like to add to an (future) ARM (Automatic Ripping Machine) installation.

I keep seeing I need different hardware. Before I go buy something, I was hoping I could get a recommendation.

  • For the GTX580 GPU I read it's too old to do that with.
  • The tuners are possible, but it's hard. I don't know if I should be blacklisting it or listening to the dmesg and try to pick a "generic card" adapter or if that would even work. I really don't want to spend another $100 bucks just to end up back in the same dead end.
  • I read I need a SATA to USB adapter. I would like to expand that later and think a SATA PCIe adapter would be nicer to have so I can just dump the set of 4 DVD drives to a Ubuntu desktop LXC. I would love to know what sounds like a good avenue to go down and which.

Basically, I'd prefer to not buy anything else. If I do buy something else, I'd like to see a tutorial that could walk me through the process. I feel like AI answers I get just have me running around in circles.

Is there a different passthrough project you did that was easy and successful? Any resources?

Thanks in advance!


r/Proxmox • • 3h ago

Question ceph noout in small 3 nodes/OSDs cluster

1 Upvotes

Hi,

This is more a ceph question than purely proxmox, but I guess like some people here I run a small 3 nodes hyperconverged proxmox+ceph cluster in my homelab. Each node has a single OSD and the replication is the default 3 (with 2 OSD minimum)

Most guides tell you to run ceph osd set noout before shutting down a node for maintenance if you want to avoid unnecessary rebalancing of the missing OSD(s) to other nodes, but in the case of 1 OSD per node with 3 nodes max, would any rebalancing happen anyway? Would ceph duplicate the missing OSD data on the 2 others or would it wait for a 3rd OSD to come back on a different host?

So I wonder if I really need to set noout before each offline maintenance in my case (and remember to unset it afterwards!)


r/Proxmox • • 18h ago

Guide If you run Proxmox in your homelab...

Thumbnail
0 Upvotes