I have a pfsense vm in proxmox. With Automatic Memory Allocation enabled, proxmox web management still reports different ram usage than that on pfsense GUI. Does it mean that ballooning isn't working?
You probably don't have guest tools installed because it's pfSense. https://pve.proxmox.com/wiki/PfSense_Guest_Notes It'd make sense that those tools would need to be installed for proper guest introspection.
Just give PfSense 512MB or a Gig and leave it be. I keep my PfSense install at 512MB in ESXI and it only uses 40% of it (and that's from looking at the pf gui currently)
I use free ESXi in production, and it's great... until you have to do anything like move VMs to different datastores, or change drives, etc. It has practically no tools built in to facilitate that stuff.
I have a tiny ssd (32GB) to store my FreeNas and PfSense installs and then I keep everything else on a NFS datastore hosted by FreeNas, so I don't really have issues migrating VMs to other places since there is only the NFS datastore as an option, and also because I don't really have other VMs that I really need running that often as it is. But I do love it for the hardware passthrough and the ease of use, which is A+.
You want the VirtIO tools. Frankly, working with FreeBSD is a big enough pain in the ass that I don't use VirtIO tools with it. But if you want to give it a shot, here are a couple of links that may help.
I'm dealing with a system of 4 Gig ram here . Every MB counts, and pfsense most of the time doesn't go past 128MB (but the makers of pfsense say the minimum is 256). It is also a good thing to learn.
Those drivers are indeed installed. I tested it in a VM on my server, granted I'm just using straight libvirt+KVM rather than Proxmox, but it should work the same. The balloon driver did indeed work as expected.
When installing pfSense, did you use the standard kernel or the embedded kernel? I used the standard. Also are you just using top to check the free memory, or is there something else you're looking at? Just want to make sure we're both looking at the same stuff.
I used the standard kernel. I look at the memory usage on pfsense's web gui and compare it the the memory usage of the pfsense vm on proxmox's web gui. And they are off by a couple hundred MBs.
Maybe try hopping into pfSense's command line and hitting up top to see how much memory is free when you restrict the VM. I mean, the usage should show up in pfSense's gui, but just to be sure.
If you're not tied to pfSense, you could get OpenWRT x86_64 ext4 images , they happily fit inside 64M of ram for basic routing/firewalling/nat/shaping/DNS/DHCP/upnp... type of usage, as you install more stuff, you can add ram to the VM
I don't see why it wouldn't be possible to run it in a container - same as you would any other distro, just make sure you assign it its own network namespace.
EDIT: on second thought, you probably want all the namespaces separate .. just because it is a distro