For our game we host its static assets on a VM that has just httpd installed and running on it (of course along some native linux things), in order to serve web content. MPM configured is worker with MaxClients of 6400, ServerLimit 100 and ThreadsPerChild 64. Memory is 4 GB. With the above configuration, served static content is of total size about 20 MB, and it is served in my country (Bulgaria), as well in different other countries. It is checked and confirmed that national and international bandwidth speeds do not differ. However, at peak moments, when bandwidth is maxed out, we start to receive mass complaints from distant users (i.e. from Russia) that the game is downloaded fully for 2-3 minutes. Anytime we check loading the game with disabled cache from here, it took around 10 secs, every time we tried, from any computer. We added 2 more VMs from the original VM's image (same config and content), and did the fastest load balancing - DNS round robin to total of three IPs. Complaints shrinked down, but loading time for Russian users kept on being 1 minute+. When we again tried multiple times downloading the game from here it was still 10s, no difference for us. What may be the possible reasons given that static content servers have equal national and international peering, and when load is low, all Russian users are able to download for 10s too, but not on peak times? Shouldn't it be the same for all users?
P.S. At all times the static servers had plenty of memory, and spawned httpd processes never got above 50, with set limit of 100
EDIT: Short summary of the question - on low load, all clients (local and distant) download the client for equal time (for instance 15 sec). When load is high, local clients load it for 15 secs again, while distant do for 2-3 minutes. What are the possible reasons?