Will 4GB RAM be enough for FreeBSD ?

For a webserver and ZFS 4GB memory would certainly be fine. But for building with poudriere it's going to be quite inadequate. Probably do-able but you're going to have lots of difficulty building the bigger projects. Especially if you want to have multiple jobs running. 8GB would definitely be better but would still struggle with things like LLVM, rust or GCC. My 'old' build server had 16GB memory and 16GB swap, and I constantly had to keep an eye on it.
 
ZFS and RAM. ZFS likes RAM and will take all it can get. BUT this is highly dependent on the usage patterns. Read everything you can on ZFS and ARC. RAM vs Performance is a datapoint you need to figure out.

inside proxmox as web server and poudriere ... and zfs.
What do you mean by "...and poudriere"? Building packages? Something else like a mirrored repo?

All my opinion, but: 4GB may be enough, but only you can decide if "it's enough to give the performance I want"
 
Depends on what you want to compile in poudriere.
pythong things, nvim, pcmanfm, conky, mc maybe gimp, firefox, ... i dont think it will be something very crazy and heavy as im not using vscode anymore and i think firefox would be heaviest oh maybe some chromium based browser so i can watch netflix / prime etc
 
For a webserver and ZFS 4GB memory would certainly be fine. But for building with poudriere it's going to be quite inadequate. Probably do-able but you're going to have lots of difficulty building the bigger projects. Especially if you want to have multiple jobs running. 8GB would definitely be better but would still struggle with things like LLVM, rust or GCC. My 'old' build server had 16GB memory and 16GB swap, and I constantly had to keep an eye on it.
No, stuff like this - its only for database, django, nginx no llms, no rust, no gcc . but there will be lots of python.
 
ZFS and RAM. ZFS likes RAM and will take all it can get. BUT this is highly dependent on the usage patterns. Read everything you can on ZFS and ARC. RAM vs Performance is a datapoint you need to figure out.


What do you mean by "...and poudriere"? Building packages? Something else like a mirrored repo?

All my opinion, but: 4GB may be enough, but only you can decide if "it's enough to give the performance I want"
This is why im trying to find out as ZFS loves RAM. Mirrored repo ? im not that tech guy who know stuff like this ha ha ... i have latopt whith freebsd so ill use my ws to build packages for it.
 
no llms, no rust, no gcc
You might not require those, they're build dependencies of various other things you're building. You might be able to circumvent those by using poudriere-devel though, and configure it to use packages for LLVM, rust and GCC.
 
You might not require those, they're build dependencies of various other things you're building. You might be able to circumvent those by using poudriere-devel though, and configure it to use packages for LLVM, rust and GCC.
I like this idea and implementing it - 8GB should be enough`ish ?
 
I run a NAS on 4GB and an Atom CPU. It only serves me and my family for simple file storage (Nextcloud) and backups. It runs ZFS in raidz just fine though on 6x4TB drives. Has been doing fine since 2012, currently on FreeBSD 14.1.
 
Well, if you do the RAM requirements go up linearly.
This is awesome, i learned something new today. I will adjust to it.

4GB Ram, it all depends on what you want to do, and how you configure poudriere.
Less Ram == Longer compile times. Certainly when the system starts swapping.
Longer compile times are not an issue for me. I can wait i used to compile firefox and vscode on laptop at some point in the past.
 
poudriere can be configured to compile on disk or to compile in ram.
I guess you want to compile on disk.
poudriere is very tunable.
USE_TMPFS is one of these tunables.
PARALLEL_JOBS is another one.
have a look at poudriere.conf.
 
Plus hyperthreading?

You will need about half a gigabyte per core just for the base system. Projects like Chromium need more. Don't offhand know about Firefox.

Fully support this. Heavier projects like Firefox, Chromium or LLVM (as a dependency) use 300MB - 600MB per C++ compiler invocation (single thread process). Rust compiler is in the same ballpark, although it runs multiple threads.

So for 4GB RAM, expect 1GB for the web server, 1GB for ZFS cache, which leaves you with 2GB / 0.5 GB = 4 build jobs in parallel. For 8GB RAM, still 1GB for the web server, 2GB for ZFS cache, leaves 5GB / 0.5 GB = 10 build jobs in parallel. I think you get the formula...

Given the RAM constraints it doesn't make sense to throw more CPU cores at it, the compiler needs these 500MB to run at full speed. If some of that is swapped out, you just gonna starve the CPUs which is counter-productive. Nonetheless there will be some outlier processes (e.g. linking) that need a lot more than 500MB RAM, you have to provide enough swap (16GB +) or your builds may fail.

poudriere can be configured to compile on disk or to compile in ram.
I guess you want to compile on disk.
poudriere is very tunable.
USE_TMPFS is one of these tunables.
PARALLEL_JOBS is another one.
have a look at poudriere.conf.

Just to clarify: Compilation is always in RAM. With USE_TMPFS you can tell poudriere to keep its build jail and the working directories (build files) in RAM - which you probably shouldn't do being low on RAM.
 
Back
Top