Howdy all,
There's been a few questions and discussions about the newly introduced --minimal
mode in the new Virtualmin 6 installer. I wanted to get some feedback about what --minimal
ought to include and what it should exclude. My goal with --minimal
mode was to make a Virtualmin installation that'll work on a 512MB system...it'll still need to make a swap file in order to actually install on Debian/Ubuntu (apt-get requires a lot of memory, so installation fails on those distros with less than about 1GB of memory+swap).
Anyway, let's talk about the state of memory consumption in a Virtualmin system today, and what the ideal Virtualmin system looks like in a memory-restricted environment.
First, I want to cover what services use a lot of memory in a Virtualmin system (note that RSS is the closest indicator of actual memory usage in most cases). These are all from 64 bit systems. Note that configuration can make a big difference in Apache and PHP process sizes, so it's possible to shrink Apache quite a bit from these numbers, if you remove some extraneous modules and features.
Minimal mode currently leaves out clamd, spamd, Dovecot, SASL, and some other programs that run periodically like AWstats and Webalizer.
After looking over this list, I think --minimal
should instead include Dovecot and SASL (they're small and useful) and leave out Fail2ban. I already removed mod_php relatively recently from the minimal LAMP target, and that is a pretty good win for memory.
So, what do y'all think? It seems like people want minimal to include a mail stack that can serve mail to clients (i.e. POP/IMAP and can receive mail sent from Thunderbird/Outlook/etc.), and now that I see just how little memory it takes, I'm on board with that.
Does everybody feel comfortable killing fail2ban for --minimal
install while bringing back sasl and dovecot? I mean, we never configured fail2ban by default until the Virtualmin 6 installer, and it was never a major source of contention...so seems like a reasonable thing to kill.
So, I thunk on it for a while, and decided to go ahead and roll it out with these changes, as I think it's a better balance of functionality and memory usage.
--
Check out the forum guidelines!
I dont know much about what should be include and what should be excluded, however what you have done has made a huge difference to system requirements...i can now easily run this thing on a micro google cloud instance (that was almost impossible before). Its resource usage is now comparable to my other standard vestacp and ispconfig installations.
https://ajecreative.com.au
Yeah, I was testing on a Google micro instance! That was the toughest one to support, so it's the one I was using as my baseline. There's still some quirks to running on Google cloud, and I probably need to make a "no local mail at all" version for GCE, because they block all the ports on needs for mail.
--
Check out the forum guidelines!
I suggest to make more options as complement for minimal installation mode... options like these for exampe:
install.sh --minimal --include-all-email-services
install.sh --minimal --include-fail2ban
install.sh --minimal --include-bind
install.sh --minimal --include-all-email-services --include-fail2ban
...
so users will be easily setup their useful packages besides minimal setup.