Benchmarking servers

Started by
5 comments, last by hplus0603 10 years, 7 months ago

Is there any tool or method to benchmark a game server?

I'm inquisitive how I would go about selecting an existing game server vs another game server, or when creating my own; verifying if my server satisfy a certain lower bound in terms of latency, uptime etc.

Advertisement
Your question needs to be substantially more specific.


Are you looking for hardware? Software? Both? What sort of service is this server providing (i.e. what kind of game)?

Latency is trivial to measure: send a packet to the server, measure the time to get a reply. Uptime is also trivial: run it. See how long it stays running.


Other metrics are more difficult to measure, such as performance scaling characteristics and behavior at large scale loads. There are techniques for that but probably significantly more advanced than you're looking for at this point.


Either way, more clarity on what you're trying to do would be helpful.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

Write bots, have them play. See what happens.

Your question needs to be substantially more specific.


Are you looking for hardware? Software? Both? What sort of service is this server providing (i.e. what kind of game)?

Latency is trivial to measure: send a packet to the server, measure the time to get a reply. Uptime is also trivial: run it. See how long it stays running.


Other metrics are more difficult to measure, such as performance scaling characteristics and behavior at large scale loads. There are techniques for that but probably significantly more advanced than you're looking for at this point.


Either way, more clarity on what you're trying to do would be helpful.

Excuse the late reply.

My question actually came from reading about benchmarking web servers (the software side). It seems for benchmarking web servers there is general set of things one is to look out for. But when it comes to gaming servers there doesn't seem to be a general benchmark which is set out. To me it seemed that the server worked for the game or didn't, not many results or comparisons against other gaming servers.

Luckily on my gaming server I decided to implement a HTTP port, I was already passing JSON messages on my standard port so it wasn't that difficult to extend. So I'll guess benchmark my server against Apache Bench or something similar will do. I just need some other web servers to compare my results against. It can't be no standard web server either, it has to be one which could be used for gaming as well. I tried searching online but maybe I'm using the wrong set of key words to search with.

The problem is that your question is meaningless.


There is no such general thing as "a game server" which can be benchmarked in a general way. Every server does vastly different things. HTTP servers all do the same thing, so it makes sense to compare their performance with a group of standardized tests. Game servers are all different, so what would you possibly test that gives you any useful data?


Your HTTP implementation on your "gaming" server is useless. All you will test is your ability to respond to HTTP requests. You will learn precisely nothing about your game server. Worse, you will draw invalid conclusions from this test, and probably make bad decisions based on those conclusions.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

It may help to use something like collectd to throw various metrics you think are important at while your game is running at specific intervals while doing load tests. This results in some nice trends that let you make SWAGs about how your server should operate given a certain amount of hardware resources under certain amounts of load. Once you have some theories, establish ways to validate or invalidate them.

Every game server will have different requirements and different metrics it finds important but in most cases, being able to trend what is happening is required for any kind of trouble shooting or bench marking.

Evillive2

Also, if you want to collect and graph truly stupendous amounts of counters, there's http://github.com/imvu-open/istatd

We actually use collectd to collect the local machine metrics for each machine, that then all get forwarded to an istatd instance that collects and stores close to 200,000 counters, with 10 second resolution.

Sincerely,

jw

enum Bool { True, False, FileNotFound };

This topic is closed to new replies.

Advertisement