How do I determine if a CPU is better than another one?
I'm looking at some old Intel and Pentium CPUs that are in a NUC. Are cores and max clock speed the only things that matter? Would a Pentium be good enough to run Immich? I have a i7-4790, and the NUCs I'm looking at range from a Pentium J5005 to a i3-1115G4. I do run Docker, does that affect anything?
Directly comparing cores and speed is only useful across the same architecture, comparing brands and different generations should only be done via benchmarks.
I can't provide any feedback about if those CPUs are enough for immich as I do not use it.
This is my go-to for a first look. You might want to see if the CPUs also support special features like encoding/decoding acceleration, because doing stuff like that in hardware is much, much faster than doing it in software with regular instruction pipelines.
Don't forget to compare a consumption too, or perhaps "performance per watt" metric. If plan to run this CPU in a server, this makes a difference in the electricity bill - especially for always on server.
In terms of raw CPU power, you will rarely have issues with anything newer than 10 years old. But some built in video conversion hardware can differ significantly and power consumption is usually also lower for newer CPUs.
I don't encourage people to buy anything older than ~2016 or Skylake era. Older chips tend to eat enough power that they're more expensive over time (usually less than a year after purchase) than newer more power efficient parts. Run the math on power consumption with the chip's TDP for a year as an estimate and you'll often be surprised by just how expensive chips from <2016 end up being to run. Cpubenchmark.net will do that for you if you use the comparator, just remember to set your average kWh cost.
This the route I went too, a couple years ago I found a tiny form factor Lenovo with a 6500t on eBay for a little under 70 bucks shipped and then I found a tiny Dell with a 9500t on my local Craigslist for 100 bucks.
You'll need a stronger CPU (or maybe multiple since you can run machine learning multiple machines) handle the load if not using a supported discrete GPU. Also for transcoding videos if you want to do that you'll have to look at compatibility of the CPU with what it can encode/decode and what format you want to store.
That being said , it barely use CPU resources with immich 99% of the time with the exception when media is backing up to it.
There were several other sites with similar headers.
As for best one for Docker, that too you can search. Specially if you use something like perplexity.ai and you ask which of those two is better for docker it gives you a nice comparison along with which areas one is better than the other as it pertains to using Docker. Suspect you can get similar good info from using any Large Language Models (LLM) like ChatGPT or Claude.ai (both of which have free plans)
It's worth mentioning that with a large generational gap, the newer low-end CPU will often outperform the older high-end. An i3-1115G4 (11th gen) should outperform an i7-4790 (4th gen), at least in single-core performance. And it'll do it while using a lot less power.