• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
hpdvs2

What hardware to use for a database server?

12 posts in this topic

(Severely altered from original post)

 

I'm starting to look at startup expenses for a game I hope to have finished soon.  I have one server online, that isn't particularly powerful right now.    But as the game begins to expand, I know I'll need a couple real servers soon.  So my questions relate to what physical hardware to get.

 

 

 

Database, Windows 2008 R2 Data Center, SQL 2012 Enterprise.

 

 What System specs should I be looking at.

 

I'm planning on High Speed SSD Drives, Raid 10 (striped+Mirrored) as the focal point of its performance.  

Atleast 2T final space.

 

Ram, should be fast, but not spending a lot here.

 

Processor, atleast 4 cores, 2.8Ghz or better.

 

Any thoughts, on areas that might see bottle necks?  or specific recommendations?

0

Share this post


Link to post
Share on other sites

What do you actually need?  This isn't really a production question.   This is more of an IT or tech lead question.

 

Part of your development process should involve stress-testing the machines.  

 

You state that plan on having 5000 users.  Did you not test this?  Perhaps you did not learn from games like Diablo 3 and Sim City?

 

If you plan on having 5000 users, you must test your system under that type of load.  Either directly test with 5000 virtual machines, or have a way to simulate it as best you can.

 

1) Most work is in quick processing of data, Some DB interactions, mostly logical processing/validation( server controls core game logic to help protect from hacking)

2) My initial thought is that the Database machine should be get atleast 4x drives, Raid 10 (mirrored/striped), 

3) atleast 1 T available space. (projected long term needs)  

4) Processor should have fast process switching, minimum single i7, 2.8ghz.

5) The Service host, does not need a lot of hd space, still mirrored, physical HDD should work fine.  

6) Plenty of RAM, perhaps 32G, Fast.  Processor should be stronger, like a Xeon E5, (not overclocked).

 

1. These database interactions must be stress tested.  As database use increases, so does the risk of deadlocks, livelocks, and resource contention.

2. Why? What numbers do you have that makes you think it needs to be RAID across 4 drives?

3. Why? What numbers do you have that says you need 1TB of space?

4. Why? What numbers show that an i7 is necessary?  What numbers show a much cheaper i3 or similar couldn't do the job?

5) Why? What numbers show this?

6) Why? How do you know it is enough?  How do you know it is not too much?

 

 

 

I know this area is more business/marketing perspective, but the more technical areas don't really have a section that seems like it would work for the technical hardware needs of release time, and this is a production related question.

I'm not sure how you figure that.

 

The management team might happen to know what hardware is required for the back-end, but that is not their job.  That work is delegated.

 

Also, in what insane world is the marketing team responsible for the implementation of the critical infrastructure servers?

 

This is entirely a technical question.

Edited by frob
1

Share this post


Link to post
Share on other sites

(Severely altered from original post)
 
I'm starting to look at startup expenses for a game I hope to have finished soon.  I have one server online, that isn't particularly powerful right now.    But as the game begins to expand, I know I'll need a couple real servers soon.  So my questions relate to what physical hardware to get.
 
 
 
Database, Windows 2008 R2 Data Center, SQL 2012 Enterprise.
 
 What System specs should I be looking at.
 
I'm planning on High Speed SSD Drives, Raid 10 (striped+Mirrored) as the focal point of its performance.  
Atleast 2T final space.
 
Ram, should be fast, but not spending a lot here.
 
Processor, atleast 4 cores, 2.8Ghz or better.
 
Any thoughts, on areas that might see bottle necks?  or specific recommendations?

Looks like it should work. Or maybe it won't. Maybe that one thingamajig will give you problems. Possibly, though, it won't.

Thing is, without looking at the numbers and hard data that frob was talking about, real-world testing data and logging of performance of your current server and tests of your server under expected load, there is literally nothing we can tell you right now about your question. This is a question best asked of your team, since they are the ones likely to know about what will be necessary. Your average forum goer just won't know enough of the technical details of your game to give any kind of rational response to such a vague question.
0

Share this post


Link to post
Share on other sites

My apologies on posting to the wrong forum.  There is no technical forum on this site for dealing with Production (or alternatively, server) issues.  And seeing as this is the only forum on this site with the word "Production" in it, I had hoped that technical production might be a part of it.  Due to phrases like "in what insane world", and other more subtle, yet sharp, responses, I presume your post was written in frustration and/or annoyance.  My apologies again on having written this here.  Could you recommend a forum on this site that would be best to talk about servers for production purposes?

 

 

Despite the mistake in location, you had also asked questions, I will try to address some of the issues you posted:

You state that plan on having 5000 users.  Did you not test this?  Perhaps you did not learn from games like Diablo 3 and Sim City?

No, I did not test this.  When I was talking about getting ready for production, doing perf tests were going to be part of it.  

 

However, I think I understand your confusion on this.  I presume you are part of a team where load testing and performance testing is base lined on development machines, or servers with random guesses as to what it might need.  I can understand using dev machines to try to get an initial idea as to the performance, but I'd prefer to use a machine that is already what I would consider a "Database Class" machine to begin load/perf tests instead of a machine littered with other development apps.  Same thing with selecting a more App Centric Server for load/perf on the service side.

 

The purpose of this post was to help isolate the initial hardware specs (improved guesses) on the initial baseline servers.  If the baseline is good enough, those will get recycled into production.  I'm not part of a well-funded team, so I don't have a lot of options in replacing lots of machines selected by poor choices, so I don't want to purchase these initial machines blindly.  And was hoping for more of a useful response at defining a Database Class server vs a Service Class server.

0

Share this post


Link to post
Share on other sites

Looks like it should work. Or maybe it won't. Maybe that one thingamajig will give you problems. Possibly, though, it won't.

- Thanks, Vague, but probably about as clear as can be expected.  Its what I'm initially expecting to try, and hoping will work well.

 

 

Based on both responses from here, I have to agree that it might be best to support to do some initial load testing on dev boxes to identify/analyze weak points/strengths, and select the first server to help improve the shape of its data handling better.

 

Thanks.

0

Share this post


Link to post
Share on other sites

This isn't really a production question. This is more of an IT or tech lead question.

 

Seconded. Ask your tech lead what server to use.

0

Share this post


Link to post
Share on other sites

Seconded. Ask your tech lead what server to use.

 

Agreed.  Can you recommend a better forum to use here?  I am the tech lead.  I've presented a few ideas as to what I feels makes a DB server over an app server.  I posted only for additional advice.

0

Share this post


Link to post
Share on other sites

Since this is for a startup game, do you ever consider hosting your database on AWS?  At least your game right now won't have a lot of users, but when it grows, AWS allows you to increase workers on demand.  Once you have done a real cost-benefit analysis that shows hosting your own machine saves money, then you can start thinking about the hardware.

Edited by alnite
0

Share this post


Link to post
Share on other sites

You can guess all you want to. You might be overspending. You might discover (to your own detriment) that you grossly underestimated.

The only way to know is to try it and see.

Hopefully you have built your game engine to support automated tests. If not ... well, now is a good time. Basically this build has the renderer disabled but otherwise is the full game. From the command line it should connect to the game server, do whatever login and lobby stuff is required, then create or join the game. It should play a complete game as a randomly selected AI player. Then it should gracefully exit.

With that complete write a script to launch a bunch of these processes. So if one machine can handle 500 of these automated clients you'll need to have 10 computers running the script, and you'll have your estimated 5000 concurrent users. (It is often surprising just how many non-rendering instances of a game simulation you can keep running simultaneously.)

This has a very positive side effect of detecting bugs in your app in addition to bugs in your server. It especially helps find problems in the AI when you find one client has stopped responding.




Each multiplayer game I've worked on (currently 8 of them) has had a small stack of machines dedicated to this process for at least half of the development cycle. The server and clients get stopped and shuffled when the nightly build completes. The server gets wiped and reconfigured to default. Then all the automated clients create a new user, connect to the game, start a game, play games using the AI settings, disconnect, and repeat.

Errors are logged, crash dumps are kept and used for debugging, etc.


From those tests we were always able to know exactly what hardware is needed for a typical load, and perhaps more importantly, the maximum load before the machine starts to have issues.

0

Share this post


Link to post
Share on other sites

I strongly suggest to look into cloud services.

Every time I read about "SSD" and "RAID" in the same sentence... I have itches.

0

Share this post


Link to post
Share on other sites

Since this is for a startup game, do you ever consider hosting your database on AWS?

AWS is not bad, I've been starting to think about a solution with Azure.  The only problem is that a portion of my data is based on static lists (things that all players interact with, like session data and chat data).  So far its light, so it wouldn't take too much to convert it to a different data solution, which would probably be a good idea anyway.

0

Share this post


Link to post
Share on other sites

I strongly suggest to look into cloud services.

 

Agreed.  Probably Azure. 

 

I can help here. Free azure hosting, architecture design, migration planning, etc. PM me.

Edited by tstrimple
0

Share this post


Link to post
Share on other sites

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  
Followers 0