Hi y’all. I’ve got an Intel Nuc 10 here. I want to run a few apps on it, like BitWarden, PiHole, NextCloud, Wireguard, and maybe more, just for my own use, inside my home.
Is there a way to guage whether the hardware is up to the task in advance? Like, if love to be able to plan this by saying, “this container will use x MB of ram and 5% of the cpu” and so on?
I want to run everything on this one PC since that’s all I have right now.
EDITED TO ADD: T****hank you all! Great info. :thumbsup
I just slowly add more services and watch my RAM and CPU.
For example, my setup is an older laptop for processing and I have a NAS for storage. The laptop has a 5th gen i5 with 8GB of RAM with a Linux OS. It’s currently running 19 containers.
Just monitor it and play around. You’ll get a feel of what your equipment can handle.
I don’t have an answer for you, but I will tell you from my experience, you can probably run a lot more on that thing than you might think.
I run all of my services on docker and I think I have 30+ services up at all times. What you should remember is that even under your most demanding workload, you’re probably only hitting like 5 services at a time while the rest sit idle. And if you are picking good, efficient apps (I really like the linuxserver.io apps), they’re not pulling much under load and certainly not while idling.
Your NUC sounds much more capable than my BeeLink and mine doesn’t break a sweat. The other commenter had it right, just keep adding stuff until you see a degradation of performance, I’m yet to hit one.
To add to this with another example: my server runs
- jellyfin
- Nextcloud
- gitea
- Monica (a CRM, look it up on awesome-selfhosted)
- vaulwarden (rust implementation of Bitwarden)
- code-server
- qBitTorrent-nox
- authelia (2FA)
- pihole
- smbd
- sshd
- Caddy
In total, I’m using about 1.5GB out of 6GB of RAM (with another 1GB out of 16GB of swap being used), and the idle CPU usage is only 1%-ish (i5-3470 with the BIOS-settings set to power saving).
Even on very old and low-powered hardware, you can still run a lot of services without any problems.
I agree. Run everything you want and then when you see performance degradation then you’ll know the limits of your hardware based on your workloads.
You already have the NUC so why not push it’s limits? The alternative is to try and guestimate your workload needs and buy matching hardware… which is very difficult.
If you’ve already bought the device there’s no much you can other than try the apps out and monitor them with docker stats
and see if it gets out of hand. It would be nice if it were documented, but it’s hard because it’s a moving target and some apps have bugs from time to time (including memory leaks) and also can behave differently on different devices (particularly containers that depend on the GPU).
Anyway, containers are good for this since you can easily create them, stop then, remove them etc without leaving a mess so if something ends up being too heavy, it’s no big deal.
Docker is very efficient in resource usage since it doesn’t have to run the backing OS processes miltiple times. The major thing to keep an eye on is the running average versus any spikes you see. If the spikes seem to be getting more frequent it’s possible you’re running into resource starvation somewhere and things are fighting for their piece of the pie. It can turn into a cascading failure pretty suddenly if things go wrong. A simple measure, in any kind of Linux system you should be able to see a ‘load’ metric as a nice overview, if the numbers on that get higher than the number of CPU cores things are probabbly about to go bad.
What is the processor and memory?
I have a 5 year old NUC with a celeron processor and 8GB memory and it doesn’t blink at whatever I throw at it. Currently running npm, Nextcloud (including embedded phone track, notes, contacts and bookmarks apps), Bitwarden, calibre web, Kavita, audio bookshelf, air sonic, dokuwiki, freshrss, transmission, paperless, dash and n8n as well as serving as file server for my home network.
EDIT - I also have a 4gb rpi4 running WireGuard, pihole, borg and time machine