My team and I are trying to troubleshoot some BMS server issues and I am looking for some tips and tricks.
Over the last few months our dedicated BMS server has been unreliable. Symptoms include all players getting disconnected simultaneously from the server in 2D, short pauses in 3D for some or all players, and perpetual pauses in 3D for all players when the server disconnects all the players from the game. Interestingly, the server itself does not lose connectivity to the Internet; TeamViewer sessions still work and players can reconnect to the BMS server after getting disconnected. But something gets in the way of the BMS server and the players. The network at the datacenter has had some issues with packet loss and latency (1% packet loss; 30-3000ms latency; 300ms jitter; all volatile) but actual connectivity to the server is rarely an issue and bandwidth is never an issue.
The server is running on a VM and has 200mbs up and down. We commit the server to 3D during multiplayer sessions; the 3D host uses some DLLs that makes up for the server not having a 3D accelerator and renders the 3D server session as a black screen. This also reduces the CPU load on the server when hosting. I can provide more technical information on the server itself, but I do not have access to the information right now. We have anywhere from 8 to 28 players connecting and playing at a time and the sessions seem to go smooth when we are all connected. Player bandwidth quality is generally good, but some players do have low or flaky bandwidth and they tend to lag in game.
Interestingly, one of our members is hosting a VM using a similar setup and we have found this instance to be more stable for up to 28 players. While that’s good for us as a workaround, it is desirable to be able to localize what the issue is on our server so we can fix it and use it.
Are there any logs that might help shed some light on what is causing these problems on our main server? Have you experienced these symptoms with a dedicated BMS server before? What tips and tricks can you share to help isolate and resolve the issues I am describing? Thanks in advance for any help!