It probably is still a valid minimum, for a VM, that runs nothing other than Home Assistant. As I believe the current position, HA supervised consumes about 1.5GB, so that leaves around 0.5GB for everything else. With nothing else, yes 1.5 fits inside 2.0.
As soon as you start adding Apps, that minimum moves on upwards to 3GB, and for an intensive HA with several Apps, probably closer to 4GB today.
I run HA on a ‘Blue’ with 4GB, and I have a very light system with really just Node-RED as an App, also running very little. My current total memory use is around 1.8GB. That leaves very little headroom.
The real figures (using Glances) shows homeassistant using 1.47GB [so 1.5 is probably about right today] and Node-RED (App) 0.24GB [NR does not actually use very much memory, unless you have a lot of flows creating big arrays of complex objects].
However, adding up all the additional hassio_ bits and pieces gives a total memory in use of 1.9GB, so there goes the 2GB.
More useful is to look at the memory caching figures -
Total: 3.7 GB
Used: 1.9 GB
Active: 2.1 GB
Inactive 1.0 GB
Cached: 1.6 GB
I’m no expert on what this fully means, but my assumption is that 1.9GB is being used now out of the physical 3.7GB, and without caching that would be 2.1GB reserved for use (or 2.9GB total including the inactive stuff). With caching out the inactive, the 1.9 just about fits into 2.0GB, with not much having to be moved in and out of cache. Using more memory, with a busy machine, more and more has to be regularly cached and de-cached to get 2.1GB or more in use to fit into 2.0GB.
Eventually the caching starts thrashing, and performance plummets. At that point, Node-RED does not get enough time to run the garbage collection, and with increasing need to do garbage collection to recover the little memory available, the end comes with a rapid full stop.
Yes you can run Home Assistant on 2GB, and yes you can run Node-RED as an App with it. You just can’t run lots of other stuff and video processing and lots of complex NR flows, and as the docs say “You can increase these resources later if your workload grows”. Maybe it should say “You MUST increase these resources…”?