Buy a faster computer and a faster Internet connection? OK, if your server is slow, the first thing you need to determine is *why* - blindly installing every pingbooster you can find will probably make things worse, not better. Also remember a higher frames per second doesn't necessarily mean it will play faster.
The server can be slow for 3 main reasons.
- There is a CPU/Memory bottleneck on the PC.
- There is a network bottleneck on the Internet Connection.
- Its badly configured or in need of a ping booster / plugin.
The best way to test how to speed things up is to have a friend out on the Internet. Firstly, you should run a dedicated server and have your friend join and wait for a reasonable sized game to get going. Do not join the game yourself unless you have another computer. While the game is being played use Task Manager/Perfmon (NT/2000/XP), System Resource Meter (9x) or top (Linux) to monitor CPU usage and page faults.
If page faults are extremely high and the disk is whirring, you probably need more memory. If the CPU load is maxed out your game is using all available processing power. In some cases where this happens, it may help to lower the frame rate, not raise it. Hullu's HLBooster can be configured to lower the frame rate instead of boosting it. If the CPU load is quite low, use a pingbooster to increase the frame rate - your machine can cope with more processing.
If you normally run a listen server, ask your friend how the dedicated server compared - if performance was OK on the dedicated but normally isn't on the listen server then your computer is struggling with running the server code and the game GUI at the same time.
Another good test if you have the hardware is to run a LAN game. If your LAN game is fast but your Internet games are slow it is your Internet connection that is the problem, not your computer. A ping booster will make it worse not better (although it will make the LAN game better).
There are three well known ping boosters to consider:
- The Linux versions of half-life 126.96.36.199 and newer have a built in ping booster - simply add -pingboost X to your shortcut to start the server, where X is from 1 to 3. NOTE: 1,2 and 3 are simply different methods of boosting, not the amount of boost you want to apply - e.g. 2 may work best on your server.
- UDPSoft have a linux only HLDS ping booster. This removes a delay built into the hlds server between processing frames, thus allowing the server to reach its maximum frame rate more often. However, I'm not sure if this is still necessary with the new versions of hlds.
- Hullu's HLBooster. This is a metamod plugin that adjust some cvars so that the game runs more frames per second. "Ping booster" isn't really an accurate name as it doesn't decrease the time taken for one packet of data to travel from the server to client, it just means the clients receive more updates more quickly
All of these boosters increase the number of server frames processed per second. A "frame" is where the server processes the updates it has received from clients recalculates positions of entities and recognises any events that have occurred - e.g. a bullet hitting a target. Doubling the number of frames doesn't double the CPU load, as fewer things will have changed within the frame. However, each frame processed can cause server to client network traffic.
Therefore running these ping boosters will increase the network load of your server. It will run with lower pings when a few players are connected but it will "choke" at a lower number of players than it would have without being boosted. You can monitor choke and packet loss by typing "net_graph 3" in your client console.
Choking is where you get intermittent but extremely serious lag (order of 1-10 seconds). This is normally caused by the server's network connection being flooded with too much data. The server uses the UDP/IP protocol rather than TCP/IP. This means that when there is too much data, instead of queuing it so it can be delivered later, it just throws the excess away. If too much for a particular client is thrown away it freezes until it gets enough packets to work out what's going on in the game. A second cause of choking is if you are using the PC for something else, or have a periodic background process running with Windows Task Scheduler or cron on Linux. The fix for these situations should be obvious though....
If you are suffering from choking problems, I suggest you try Ravenous Bugblatter Beast's rate management plugin which attempts prevent the server from sending more data than your network connection can handle and/or use HLBooster to lower sys_ticrate - don't try and increase the frame rate.
Now if you have anything more to say about this subject, post it in the non-admin forum where it belongs.