trev-gdr Posted March 8, 2008 Share Posted March 8, 2008 Note: These are just "I wonder" statements that have been going through my head last night and this morning, in no way do I claim any of these crazy ideas to be true. Now over the past few weeks I have been gaining a customer here or there with most of them primarily picking one location. The server that is at that location is now profiting(yay) and maxes at 30% cpu at prime time, so I thought, hey 30% still got quite a bit of room left on that box. But for a few nights I went on one of 500fps servers during prime times to run tests, everything seemed to run smooth but I notice the server FPS fluctuating between 350-512. I have yet to hear a complaint from a customer, but I want my servers to run the best or at least improve in performance. To most companies this fluctuation is acceptable, and for most possibly they won't admit that their servers fluctuate (looks around), but I'm sure there is a way. One thing I notice can be a cause of fps fluctuation is other servers on that machine also fluctuating in cpu usage. I know that high cpu priority could fix that for one, but if both were running on high cpu priority, they would both be equally fighting over the cpu, so it would be pointless for a customer to even pay for high cpu(which is why I never understood it). Now yes I could also set each server on its own core, but if I were following the performance-gsp standard, I would have 2 servers on each core. But that would just cause the same problem if the 2 servers on the same core had activity in them. Now here is one of my crazy ideas, the ability to be able to set a minimum amount of cpu that one game server uses so that it sustains a constant amount of cpu with little fluctuation. Am I way off with this idea? Would a constant amount of cpu usage even help sustain fps? I notice the ut3 server accomplishes a constant amount of cpu usage, it has a high idle cpu usage, but once a server fills up it only goes up about 2-4%. Another possibility going through my head (which windows may already be capable of doing) is the ability for the kernel to place a process gaining in cpu usage onto a core that has been determined to have the least amount of activity on it (kind of load balancing within the server itself). Now I know some of the material you may not want to leak out, but these are things that I'M wondering that I would just like to be either answered or speculated. If you do not want to make a comment public and are nice enough to share some insight with me, feel free to email me at admin@gamingdoneright.com Link to comment Share on other sites More sharing options...
jbiloh Posted March 8, 2008 Share Posted March 8, 2008 Just set the sys_ticrate to zero. "sys_ticrate 0" That should help. Link to comment Share on other sites More sharing options...
trev-gdr Posted March 9, 2008 Author Share Posted March 9, 2008 Ok thank you, any comments on my ideas though? Are they even plausible? If so, I'd actually start looking into creating something based around them if it means increased performance. Link to comment Share on other sites More sharing options...
Monk Posted March 9, 2008 Share Posted March 9, 2008 Note: These are just "I wonder" statements that have been going through my head last night and this morning, in no way do I claim any of these crazy ideas to be true. Now over the past few weeks I have been gaining a customer here or there with most of them primarily picking one location. The server that is at that location is now profiting(yay) and maxes at 30% cpu at prime time, so I thought, hey 30% still got quite a bit of room left on that box. But for a few nights I went on one of 500fps servers during prime times to run tests, everything seemed to run smooth but I notice the server FPS fluctuating between 350-512. I have yet to hear a complaint from a customer, but I want my servers to run the best or at least improve in performance. To most companies this fluctuation is acceptable, and for most possibly they won't admit that their servers fluctuate (looks around), but I'm sure there is a way. This all depends on your CPU (AMD, Intel) and OS. FPS is calculated by measuring the latency between 2 sleep() calls. Sleep() is a syscall on windows (i think), unless Microsoft got creative and mapped it to userland, avoid context switching costs from kernel protection domain overhead. One thing I notice can be a cause of fps fluctuation is other servers on that machine also fluctuating in cpu usage. I know that high cpu priority could fix that for one, but if both were running on high cpu priority, they would both be equally fighting over the cpu, so it would be pointless for a customer to even pay for high cpu(which is why I never understood it). CPU usage scales with demand of syscalls and general I/O, context switching, etc. FPS will never be stable, because the higher it is, the more erroring vrs. realtime occurs. Lower FPS will never error as much as higher, because of clock skewing, sleep()/queryperformancecounter() latency, jitter, DMA transactions, etc. The only true way to maintain high FPS is to ditch windows and use something that doesn't have serious interrupt latency, like vxworks, or another *NIX varient. Link to comment Share on other sites More sharing options...
trev-gdr Posted March 9, 2008 Author Share Posted March 9, 2008 CPU usage scales with demand of syscalls and general I/O, context switching, etc. FPS will never be stable, because the higher it is, the more erroring vrs. realtime occurs. Lower FPS will never error as much as higher, because of clock skewing, sleep()/queryperformancecounter() latency, jitter, DMA transactions, etc. I see, I do notice my 250fps servers don't budge more than 10fps, makes sense. The only true way to maintain high FPS is to ditch windows and use something that doesn't have serious interrupt latency, like vxworks, or another *NIX varient. I wish I could just ditch windows, if there were a comparable control panel out there that supported even just linux, I would be there in a heartbeat. I originally planned using centOS on the majority of my machines when I had first begun testing the servers that would eventually put into production, but the lack of a good panel forced me to switch. Unfortunately I don't have the knowledge or time to code such a thing, perhaps I will eventually hire someone to. I have to ask gary, what field of engineering did you study? You seem to be the only one in the GSP business that actually knows what they're talking about when it comes to how software communicates with the hardware. I'm just interested because I am just now finishing up my freshman year as a computer/electrical engineering major, but am still only taking core classes so I have not got a chance to speak with any of the CpE professors yet, but I'd have to guess that I will have a few classes involved with subjects like this(can't wait). Anyways, thanks for the comments (sys_ticrate 0 did help), I'll be throwing those ideas out the window . Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.