I believe NSD and Postgresql benefit from multiple CPUs. How many CPUs can you assign for the site?
It might make sense to put the VM onto dedicated hardware for the duration of the olympics with multiple cores/processors dedicated to the site.
How much time does a request take in NSD at 300/minute?