I'm making a server for MMO in Unity, which implies that I'll have a big world, split into maps which will be on different servers (to distribute the workload), managed by one master server.
Now I can't decide weather I should use one executable per map and have few executables run on each server or have few maps on one executable, which will have it's own server.
Second solution also would allow me to redistribute the workload by moving maps from one server to other (which shouldn't take long to do since servers don't need to load models).
Btw servers need to be made in Unity for the physics simulation and collisions...
The networking part can easily be multithreaded simply by using many threads to process the requests and generate response.
But since Unity is single threaded adding more maps would slow down the physics engine (plus the same thread has to apply all actions of the players to the game), so the first solution helps here by using multiple executables. (Edit: Note: physics engine will take considerable amount of CPU time, even while the scene is empty)
Which solution should I chose?
EDIT: On the end I decided to use both: few executables on each server, with each executable being able to run multiple maps and being able to dynamically create dungeons when needed.