MMORPG - How many servers should I buy ?

Started by
63 comments, last by GodBeastX 18 years, 8 months ago
If you're having significant steady-state server load problems, Vtune, gprof or oprofile are going to tell you why.

In my opionin, it's the occasional big stutters that halt processing for a few seconds -- only once in an unpredictable while -- that will keep you up at night... and, yes, all of them are usually the fault of some programmer not thinking ahead in one way or another.
enum Bool { True, False, FileNotFound };
Advertisement
Quote:Original post by grekster
Quote:Original post by xJOKERx
• Intel P4, 3.2GHz, HT, 800MHz Bus, 1MB Cache
• 160GB RAID rated Server-Class Hard Drive
• 1,024MB Dual-Channel DDR400 SDRAM
• 3,000GB Monthly Transfer
• 100Mbps Non-Capped Network Connection
• 5 IP Addresses


Sorry for the OT question:


What does the none capped network connection mean? It says above a 3TB Monthly transfer. Is that not a "cap". Or does that refer to transer between the server and the server owner (for uploading content and such)?

Good luck with your game xJOKERx. They're hard to pull off :)


It can mean a couple of things. The first is that your 100Mbps connection (ethernet LAN connection on your dedicated server) is not going to be plugged into a smaller pipe (50Mbps) before going out the door.

The second thing is can mean is that your connection is guarenteed to be 100Mbps all the way out the door (all the way to a OC class backbone pipe) - so the data center will ensure 100mbps are dedicated to your connection, even if other servers are using peak bandwidth (remember that all the centers servers are basically connecting the same trunk to get to the backbone). In some situations your 100Mbps would only be guarenteed if other servers where not using the bandwidth (like getting home cable internet)
Yes, I'm a big fan of gprof for general optimisations.

But lately it was mostly stutter bugs that happened at unpreditable times, random peaks etc.

Plus yes it was a constant battle but I'll admit I was rather tired and painted a grim portrait. I do spend quite a lot of time on adding features and fixing bugs, it's the combination of doing all that stuff and meetting deadlines that can make it challenging.
Quote:it's the combination of doing all that stuff and meetting deadlines that can make it challenging.


We're drifting into software engineering process here, but a deadline cannot have a fixed manpower pool and a fixed feature set and a fixed date. One of the three has to be flexible (typically, the feature set).

Thus, when you have many bugs during a certain iteration, you will get fewer (if any) features done. Working longer hours to meet all the different requirements may work for a single deadline, but quickly wears you down over time.

The nice thing with having the same people fixing bugs and adding features is that the bug/feature balance is self-regulating. If you add too many features for the given timeline, they will be buggy, and you won't be able to add more features until you've fixed the bugs ;-)
enum Bool { True, False, FileNotFound };
Alright, I admit I didn't read every post. So bear that in mind when I write this response.

The number of servers you will need will directly be influenced by your server software developers. Asking "How many servers would you need for X game" won't be enough info by any means. For example, from what I've come to know, World of Warcraft is heavily based on real-time database queries (which I wouldn't have done personally) and on top of that they don't have people very experienced with optimizing database flow. So what happens is, they'll need to toss more cpu processing power at their servers than some other team of skillful developers would have. The client isn't what decides the load (well, not all of it) it's the back end. So I guess the real question is, how skilled is your team at writing servers? Are they the kind of people who can be efficient on every level? Or are they the type of people who multithread everything because they don't know how to implement a non-blocking singlethreaded program?

BTW, World of Warcraft is very laggy ^_^

This topic is closed to new replies.

Advertisement