As for performance optimization, I think the direction is good, and perhaps
you could go even further if you have a load balancing device that can
distribute the traffic among the multiple VMs.
Not sure why reducing the memory should help. Also reducing the number of
virtual CPUs has probably little effect as well. The main point in reducing
the number of cores and disabling threads is to give modern CPUs more
thermal/power headroom to run the fewer CPUs at a higher clockspeed.
I doubt you get the same effect on vCPUs.
What helps is not the reducing of the resources, but reducing of the
load. :-)
Please consider the following two cases:
- Full load to 1 "powerful" VM with 8 vCPUs and 8GB RAM
- 25% of the load to 1 "moderate" 1VM with 2 vCPUs and 2GB RAM
As OpenBSD does not benefit much from the 8 cores, the performance of
the "powerful" VM and the "moderate" VMs is quite similar. But the load
for each "moderate" VMs is only 25%.
Of course, my comparison is not completely fair, as the load balancing
device also needs resources. But it can use e.g. Linux and FD.io VPP
that has incredible performance due to using DPDK. So if you use one
"moderate" VM for that purpose, its performance would be more than
enough, whereas each of the other three "moderate" VMs will get about
33-34% of the full load.
Best regards,
Gábor