So i did an experiment, can you run the Server with 16 gigs of Ram, well basically yes you can but there is a catch.
I set all the rates to vanilla and leveled up by normal playing from 1 to 58, catched a few horses the vanilla way, did gathering, crafting.
The problems you will encounter are some delays for questing, shops, klicking skills to learn in the skill menu, of course mob AI and you need to sacrifice an SSD for Windows Pagefile (Swap). Most of these delays are somewhat random, sometimes no delays, sometimes 2 seconds, and in very rare cases when the server is in a busy state somewhat longer. Only thing that was really bad are those quests where you need to summon a Boss and kill it.
That can really take some time until it registers attackable. Your skills on normal mobs register just fine, sometimes there is one mob that just ignores whatever you do, but that does not really matter as it often enough suddenly registers and dies or resets. If the Server is in a busy state and you move to fast the server will catch you for speedhacking and teleports you back, quite funny.
If you wanna try this keep in mind that you need to sacrifice an SSD. A normal SATA one worked for me, if you have an NVME, try that but keep in mind there will be heavy read/writes all the time while the server is running.
You also need to set the Pagefile to a fixed size in Windows or the Server will crash on startup as Windows is not increasing the Pagefile fast enough by itself. I set mine to a fixed min and max of 240 gigs.
My VM is a Windows Server 2019, 16 gig Ram, 4 CPU cores (4,57 ghz).
These are my settings in 'DataSheet_Server'
Table 'CanServiceOption'
Table 'ApplicationServiceOption'
In the file 'DataSheet_ContentsOptions' Table 'LocalizingOption'
search for '%CpuBusyRate' and set it to 99 or even 100 for NA
The Server will stop sending some stuff to the client if the CPU is loaded higher then the specifed value, maybe 0 will disable that, not tested, 99 works for me just fine.
When you then boot up the server the normal way you would do and when the field server has loaded you need to have an eye for the title bar:
There is a part where it says 'Queue' if that goes up your delay will get longer and longer, you should allocate enough threads for the field server so it can do all the needed things. To much threads and your CPU will melt as this server can also get very CPU intensive, not enough and your Queue will build up and never go down again which makes it completely unplayable. Thread allocation is in the 'DataSheet_Server' Table 'CanServiceOption' in the picture of the table above you see in Row 4 the Numbers (22/14/14/3/30000/1/12), in my current testrun i changed the numbers to (18/14/14/3/30000/2/14)