Game Development Community

Profiler under Linux

by AlexanderSLG · in Torque Game Engine · 12/05/2007 (7:46 am) · 2 replies

I've been trying to do some stress testing on our servers, because we're making an MMO and specs say that it should be able to handle a maximum of 1000 users/machine. I don't expect an out-of-the-box build to handle that kind of load, but I'd like to know what do I need to modify for this to be possible, at the very least.

Well, our servers run under linux, and the profiler simply won't work there. It seg-faults when I do profilerDump(), and gdb tells me that this happens in this call:

printFunc("%7.3f %7.3f %8d %s",
F32(100 * (rootVector[i]->mTotalTime - rootVector[i]->mSubTime) / totalTime),
F32(100 * rootVector[i]->mTotalTime / totalTime),
rootVector[i]->mTotalInvokeCount,
rootVector[i]->mRoot->mName);

that's line 492 of platform/profiler.cc. The problem is that rootVector[0]->mRoot is not a valid pointer. In windows this problem doesn't exist. Does anyone know what's the problem, or another way of checking this out?

For what I've seen, most the trouble comes when many player objects interact, so maybe a machine can handle 1000 users, as long as there aren't many in the same server-process instance.

I think the Player object's physics logic will have to be simplified a lot for this, but I'd like to have some numbers to plot a graph

thanks

#1
12/05/2007 (9:22 am)
I had been looking into this too, but didn't have a chance to track down the true problem. IIRC, there *seems* to be data accumulating in the profiler's data structures.

You might try the gprof patch here in this thread:
www.garagegames.com/mg/forums/result.thread.php?qt=65174
#2
12/05/2007 (10:35 am)
Great.. thanks. hope that works