The relevance of FPS for srcds
As currently the discussion has been raised again, I think it is time for a statement on the importance of FPS for srcds-based game servers.
As all major titles have been updated to the orangebox engine with the 2010 update of Counter-Strike: Source, the meaning of server FPS for the in-game feeling has shifted. In simple words, as long as the FPS are constantly at least as high as the tickrate, FPS are not relevant any more. It does not matter whether a server (with tickrate 66) runs with 66 or 1000 fps (or even more). There is no, absolutely no difference.
The technical reason is a big improvement in the network engine: In the original 2003 engine, the server only received and processed network packets while processing a frame. A server running at 100 fps thus had gaps of 10 milliseconds between each frame, so each network packets get an additional latency of 0 to 10 milliseconds. This is not much, but enough to create small, additional imprecisions. In the orangebox engine network packets are received by an additional thread which does not depend on the FPS. So network packets can now be received immediately upon arrival, so no additional latency gets added. FPS are now only relevant for calculating world snapshots and sending them out to the clients. That is what is called a "tick" and thus limited by the tickrate. Therefore FPS higher than the tickrate do not improve the game-play, but only increase CPU usage (and thus might actually make the server worse, if resources are low).
So if you run a orangebox game server, I strongly recommend you running it with FPS equal to its tickrate. Use fps_max to limit the FPS with a slightly higher value to prevent FPS drops due to rounding errors, i.e. for a tickrate of 66 use fps_max 70.
FPS are still not completely unimportant (and this FPS meter is still not totally useless), as you need to make sure that FPS never drop below the tickrate for an optimal performance. This is the reason why I changed the graph display end of last year, so that variations in the time (= inverse of FPS) can be equally judged independently of the FPS height. The optimal scenario is having FPS exactly equal the tickrate all the time. Not higher, and not lower.
And please do us all a favour: if you meet someone still believing in ultra-high FPS, link him to this article. Hopefully this will help him understand the facts.
Important update: It seems that the above statement is only true, if the FPS are exactly equal (or a tiny bit below) the tickrate. If you have slightly higher FPS (like 80 instead of 66), your server will probably suffer from an effect called aliasing. This will lead to a variation in the effective tickrate which might make things a bit bumpy. There are a few "golden" FPS values that allow very smooth game play. In case of tick 66 those are: 66fps, 200fps, 333fps and 1000fps; at tick 100: 100fps, 200fps, 500fps and 1000fps. Make sure to reach one of those values as exactly as possible (with your real FPS, not what you set with fps_max!) and do not use values in between. In doubt use some value slightly below one of the "golden" values.
And join the Steam group and invite others: http://steamcommunity.com/groups/1337fps

