Load testing the server (client side bots)
by TheMartian · in Torque Game Engine · 01/05/2005 (11:56 am) · 4 replies
Was curious if anyone had written a test app to make it easier to load test the torque server.
for example if I want to see what happens and profile the server as I try to reach, say, 200 players on a map, I dont own enough hardware to run 200 instances of the torque client
to even begin to simulate the load. (oh and 200 bots running around is not the same thing)
(you need 200 connections, with 200 client bots running around to at least approximate
a real load).
would be nice to have a client side bot that just does some simple things like runs in a circle.
still cant run 200 of them, so a client with no rendering, no sound, etc would make it so you could run more, probably not 200.
a final stage would be a client that creates 200 connections, each one a client bot that runs around. each connection/bot would be in its own thread sharing the map data making it more practical to run a lot of them on one machine (within reason, there would still be bandwidth issues obviously).
has anyone done any of this? (any of these steps, part of them for example?)
figured I might as well ask before I go ahead and write it all myself. might save some time, and it seems since the engine is multiplayer by default someone would hopefully have something started just for regular testing purposes. (if your not you should be otherwise youll realize too late that all your changes you made reduced the servers ability to handle as many players as the default version of the engine : )
for example if I want to see what happens and profile the server as I try to reach, say, 200 players on a map, I dont own enough hardware to run 200 instances of the torque client
to even begin to simulate the load. (oh and 200 bots running around is not the same thing)
(you need 200 connections, with 200 client bots running around to at least approximate
a real load).
would be nice to have a client side bot that just does some simple things like runs in a circle.
still cant run 200 of them, so a client with no rendering, no sound, etc would make it so you could run more, probably not 200.
a final stage would be a client that creates 200 connections, each one a client bot that runs around. each connection/bot would be in its own thread sharing the map data making it more practical to run a lot of them on one machine (within reason, there would still be bandwidth issues obviously).
has anyone done any of this? (any of these steps, part of them for example?)
figured I might as well ask before I go ahead and write it all myself. might save some time, and it seems since the engine is multiplayer by default someone would hopefully have something started just for regular testing purposes. (if your not you should be otherwise youll realize too late that all your changes you made reduced the servers ability to handle as many players as the default version of the engine : )
#2
But I dont want to sidetrack the thread, this isnt about acrhitecture for a MMO game, this is about being able to load test the server. even if you were only going to want 100 on a cpu you still need to be able to stress test your server to make sure you havent introduced anything that has hampered the servers ability to support that many players (or whatever number your shooting for).
I think the hard limit was removed as well so Im not sure its still at 128, but the point is whether anyone has already developed something like this. and I agree with you I havent seen anything like this either, yet.
Thats why I decided to ask, since maybe someone has started something like this and I could help them or ill just need to develop it myself if no one has a test application like this.
01/06/2005 (6:44 am)
Yeah I understand the concept :) (ive worked on many MMO's) but I can tell you that several MMO's out there support way more then 128 players per map/server. You really have too to help reduce your hardware expenditures when you launch and as you grow.But I dont want to sidetrack the thread, this isnt about acrhitecture for a MMO game, this is about being able to load test the server. even if you were only going to want 100 on a cpu you still need to be able to stress test your server to make sure you havent introduced anything that has hampered the servers ability to support that many players (or whatever number your shooting for).
I think the hard limit was removed as well so Im not sure its still at 128, but the point is whether anyone has already developed something like this. and I agree with you I havent seen anything like this either, yet.
Thats why I decided to ask, since maybe someone has started something like this and I could help them or ill just need to develop it myself if no one has a test application like this.
#3
As you well know there are professional tools such as LoadRunner that are designed for this type of thing, but nothing exists at the Indy level that I have been able to find--and it's a very important need.
[hint]
Yet another little resource or even low price support application that IMO would be very useful for many projects.
[/hint]
01/06/2005 (7:16 am)
Other than a script based process generation scheme (probably linux would be more efficient, but that's just my lack of Windows scripting knowledge speaking) would be the most efficient, but I'm not aware of any (and I've looked) setups or resources for the automated regression/load testing your discussing (yet).As you well know there are professional tools such as LoadRunner that are designed for this type of thing, but nothing exists at the Indy level that I have been able to find--and it's a very important need.
[hint]
Yet another little resource or even low price support application that IMO would be very useful for many projects.
[/hint]
#4
01/11/2005 (8:30 am)
Torque is not threadsafe. :) If you want to do some loadtesting like that I'd suggest lobotomizing the resource load and client side prediction code, and making the clients shove some random or prerecorded moves down the network connection. That way clients take minimal CPU time, letting you focus on the server.
Torque Owner Eric Lavigne