Sign in to follow this  

How many servers?

This topic is 4368 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi all, We're looking to rent dedicated game servers for a new multiplayer action game, to which we have already 100,000 subscribers (for a web-based version of the game). I'm interested to know how many servers would you guys think we need to be sufficient for our subscribers, for the new game? I'm not talking necessarily about simultaneous users, but about your recommendation as to how many dedicated servers should we plan on renting to support these users... thanks for any idea!, Lior, NOKs http://www.NOKs.com

Share this post


Link to post
Share on other sites
This should be pretty easily answered by looking at your load tests. If the servers start to lag when you have 100 users, then you need 1,000 servers. If they start to lag when you have 1,000 users, then you neeed 100 servers. It's completely dependant on the specific game as to how many servers are needed to host X number of users.

-me

Share this post


Link to post
Share on other sites
Hi guys, thanks all, but actuall, I'd like to plan ahead my financing before we rent the servers, instead of doing load tests and then keep growing... I am sure there are some rules of thumb? like - 100,000 subscribers <--> 1 server?

again, thanks VERY much - appreciate it!

Share this post


Link to post
Share on other sites
No rules of thumb. 100% dependant on what the servers are (hardware wise) and what the program requires per user. If you have 100,000 users already playing it you know exactly what you need based on that hardware. So if you get hardware about 2x as good you need about 1/2 the servers.

Share this post


Link to post
Share on other sites
Am I right in saying that you have a web-based version of the game, but the game for which you want servers is not web-based? Otherwise, comparing Everquest to a web-based game isn't too useful. For a website, 100,000 users ranges from "can run on a 486" to "stonking web farm" depending upon the web app, database requirements, concurrent load requirements (a 486, or even my cellphone, can easily handle 138 hits per hour), and so on. (A Dell/MS-funded study recently said that an x64 server running Win2k3/IIS6/Oracle tops out at about 1,300 concurrent users in an e-commerce test suite) For a modern game server, you probably don't want to put the baseline as low as a 486, but again what you need will depend greatly upon usage patterns, how efficient your code is, etc. (bandwidth use may also be an issue to consider).

Everquest and other MMO's don't tend to talk about specifics of their server farms. There was an "engineering Everquest" article around a while ago that said that EQ averages 1 server per 400 subscribers, all running a type of Unix. I don't know how true that is, but it's a number.

Honestly, though, without knowing everything about your code, I may as well say "it ranges from 1 server each to 1 server for everyone".

Share this post


Link to post
Share on other sites
Thanks. Actually 400 is a number, and I just found an article to support that - EVE online seems to use the number 500 users/server
http://www.superssd.com/success/ccpgames.htm

so now it comes from 2 sources - not only a number.. almost a fact!
thanks,
Lior

Share this post


Link to post
Share on other sites
Apparently you don't get it. As Bracket pointed out, your code effects a lot of things. Your memory footprint etc. You're asking us to tell you what vehicle you need but give us NO idea what you're using it for other then driving. But getting upset when we don't give you the "right" answer your mind wants. Your numbers are not fact, nor close to it; they are fact for those games though. Those guys highly optomized their code, profiled it and tweaked until they got it just right.

If you have 100k subscribers for your application you have number to work with. Give us those and we can help. Throw us a bone here. Ultima Online had like 300 users per server then some guys rewrote it themselves using C# and got it to like 2500 users I think it was. There, that's a new number to add to your fact :)

Mike

Share this post


Link to post
Share on other sites
Quote:
Original post by liorm
so now it comes from 2 sources - not only a number.. almost a fact!


It really does depend on your code. I would assume EVE's servers are well tuned by professional software engineers and designed to run with minimal memory footprint and CPU time. Your game might not be coded the same way.

All of this depends exactly on your code, and nothing else at all. Run some load tests and use that as a basis for comparison.

Share this post


Link to post
Share on other sites
Thanks again. I didn't get upset at all, was good discussion. About our current game, its a web-server based one, so it wouldn't really tell anything about the action MP game coming up. About the question, asking for some numbers out of the thin air, as I said, I need to put a financial plan, so I just need a very raw number - based maybe on best optimized code. Of course in the real world we would design, write, optimize, test, load, rewrite etc. But I needed some assumptions to get started.

Share this post


Link to post
Share on other sites
plan on spending anywhere from $10k to $30k a month.

Actualy, why dont you tell us this instead: What network middleware are you going to be using (if any), there ARE some numbers related to these. If your using torque for instance, tell us this. Also, where are you planning on purchasing the servers from, or what type of hardware do you want them to have. for instance a new dual xeon would be just as good if not better then 3 lower end machines, if not more.

You can come up with a more accurate number, but we need to know what your programming with? What type of game you are making? Some details on the game itself (we need to know what alls going through the line). Any network middleware? Etc.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by liorm
Thanks, but still I would like some numbers. Let's try that from a different perspective. Perhpas anyone knows how many servers Everquest uses? How many servers his game company used? etc.


For a relatively old mmofpsrpg where the physical simulation engine was built into the rendering system so each server had to run a modified non rendering version of the client software, the required capacity was one server per zone. The game had around 300-400 zones of variable size plus smaller instanced zones, so a relatively big pc based cluster was used to support a player base around 5000 online users. Compared to this the server and bandwidth costs of wow are relatively low. It all depends on the algoriths used. (for this game the use of 1 server per 16 users was the most extreme I've ever seen)

Viktor

ps:
Imho seeing dozens of discarded bullet shells correctly bouncing off from a thin window frame in an mmo game with thousands of users online is certainly worth the server cost.

Share this post


Link to post
Share on other sites
Everybody looks at the "100,000" number, but that's not simultaneous.

Question: How many SIMULTANEOUS users do you need?
Question: How many of those will interact in one big clump? I e, how many other users can I potentially see on my screen at the same time?

Someone said "load testing" but the OP thought this meant "testing under load".

Question: Do you have synthetic load testing applications? I e, can you generate hundreds of fake clients, and log them into a server you have in your office?
Question: If you log in these fake clients, how many of them can you have logged in before the server croaks?

A single server might only be able to serve 30 players, if those players are playing Counter-Strike Source. The same server might be able to serve 3,000 players if those players are playing Ultima Online. The scalability really does depend on your code!

Answer these four questions, and we might be able to give you a much better answer.

If you don't have the software written yet (so you can't test it), then you need to figure out what number of players to aim for per zone/instance/server. You should also remember that game design will usually make it so that players are not evenly distributed (unless your game looks more like Counter-Strike than like, say, Planetside or City of Heroes).

Share this post


Link to post
Share on other sites
I know a lot of people have tried to tell this to you, so I'll try and say it a different way.

The usage any certain application has on a server is completely dependant to that application. For instance, running a text based game I might be able to support 1000 users on a single server, but someone who runs a CS server can only support around 32 or so. Or even someone with another text based game might only support 500 users per server because his code isn't as optimized as mine, or he uses different methods in his code than myself. That's if all those different applications are running on the same specced machine.

I could run 1000 users on one machine with my text based game, but if I use a different server, I might only squeeze 750 maximum, due to the limitations of that server. Again, there is really no way at all to even give you a ballpark of how many servers you will need for whatever application you're using, because there are way too many variables to calculate even a rough ballpark.

If you would like though, I could throw some random numbers out for you, and you can choose which one you would like to go with for the number of servers you would need :)

5
62
57
24
82
33
95

But really, all joking aside, no one will be able to even give a ballpark that's worth 2 cents.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by Mike2343

If you have 100k subscribers for your application you have number to work with. Give us those and we can help. Throw us a bone here. Ultima Online had like 300 users per server then some guys rewrote it themselves using C# and got it to like 2500 users I think it was. There, that's a new number to add to your fact :)

Mike



Anyone know if that C# rewrite of UO server reflected being run on newer CPUs (UO may not have upgraded their server machines for several years) AND did they do something like switch from TCP to UDP (TCP connections have alot of overhead and the 300 old UO may have been ettributed to something like that?? I seem to recall 2500 TCP connections arent viable on one machine.


For the roiginal poster, what kind of bandwidth requirements are there per used?? Even if its webbased game, if it has alot of update data to send regularly it adds up. A high per server machine bandwidth can be just as significant a limitation as CPU requirements.

Share this post


Link to post
Share on other sites
Quote:
I seem to recall 2500 TCP connections arent viable on one machine.


You recall wrong. They didn't change the UO client, so clearly they didn't change network protocols.

"Viable" is relative -- how much time do you want to spend in the kernel, versus how much time do you want to spend running your server code? Also, "viable" is relative to how you structure your program, and what particular hardware you're using (I seem to recall a fancy multi-processor server for that UO experiment).

Share this post


Link to post
Share on other sites
hplus0603: Wow, I never said client, I said server. Please don't snap at me AND put words in my mouth, not on Christmas eve atleast...

Actually they made a server backend using TCP instead of UDP and it was like 7800 users on the one server. They used very modern, high end hardware too.

Here's the thread:
http://www.gamedev.net/community/forums/topic.asp?topic_id=328479

Edit: My bad, apparently TCP was used already so no switch happened. Read the article for more info.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by Mike2343
Actually they made a server backend using TCP instead of UDP and it was like 7800 users on the one server. They used very modern, high end hardware too.


7800 connections require in the worst case around 1Gb of memory. If the server is using smaller tcp windows, then it can be as low as 32Mb (2Kb buffers) and if the tcp stack is using hash based connection lookups and fixed buffer slots, then the overhead can be minimal. Kernel to user mode event dispatch can happen with some of the advanced methods, the most simple one being poll() instead of select(). This load can even be serviced on low end servers. The only things that really matter are server code complexity and data size. The only disadvantage of tcp is the retransmission jitter caused by packet loss. But this only matters if the event propagation speed is more important than strict in order data transfer.

Viktor

ps: Using udp instead of tcp for a stream protocol doesn't have much advantage, because the only one is the chance to do direct connection lookups based on connection ids contained in packets.

Share this post


Link to post
Share on other sites
Quote:
Using udp instead of tcp for a stream protocol doesn't have much advantage


Obviously -- TCP is a stream protocol after all :-)

I think the point was that many games communications needs aren't actually all that stream-like, so the question to the OP (who long since seems to have fled the thread) was what his game was like.

If it's like Counter-Strike, the number is about 32.

If it's like Planetside, the number is about 500.

If it's like Ultima Online, the number is about 8000.

Share this post


Link to post
Share on other sites

This topic is 4368 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this